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;
}
}