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; }}
新闻热点
疑难解答