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.
代码如下:
1 /** 2 * Definition for a binary tree node. 3 * public class TreeNode { 4 * int val; 5 * TreeNode left; 6 * TreeNode right; 7 * TreeNode(int x) { val = x; } 8 * } 9 */ 10 public class Solution { 11 public int maxDepth(TreeNode root) { 12 Stack<Integer> stack=new<Integer>Stack(); 13 14 int depth=0; 15 if(root==null) 16 return 0; 17 if(root.left==null&&root.right==null) 18 return 1; 19 20 if(root.left!=null) 21 { 22 depth=1+maxDepth(root.left); 23 24 if(stack.empty()||stack.peek()<depth) 25 stack.push(depth); 26 } 27 28 if(root.right!=null) 29 { 30 depth=1+maxDepth(root.right); 31 if(stack.empty()||stack.peek()<depth) 32 stack.push(depth); 33 } 34 35 return stack.peek(); 36 } 37 }