你的位置:首页 > Java教程

[Java教程][LeetCode] Maximum Depth of Binary Tree


Given a binary tree, find its maximum depth.

The maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node.

 

     这道题我们借助stack和iteration就可以做出来了。

     一个stack<TreeNode>用于node,另一个stack<Integer>用于depth的value。

     代码如下。~

/** * Definition for a binary tree node. * public class TreeNode { *   int val; *   TreeNode left; *   TreeNode right; *   TreeNode(int x) { val = x; } * } */public class Solution {  public int maxDepth(TreeNode root) {    Stack<TreeNode> tree=new Stack<TreeNode>();    Stack<Integer> value=new Stack<Integer>();    int max=0;    if(root==null){      return 0;    }    tree.push(root);    value.push(1);    while(!tree.isEmpty()){      TreeNode temp=tree.pop();      int val=value.pop();      max=Math.max(max,val);      if(temp.right!=null){        tree.push(temp.right);        value.push(val+1);      }      if(temp.left!=null){        tree.push(temp.left);        value.push(val+1);      }    }    return max;  }}