首页 > 其他 > 详细

Maximum Depth of Binary Tree 解答

时间:2015-09-24 10:54:11      阅读:237      评论:0      收藏:0      [点我收藏+]

Question

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.

Solution 1 -- Recursion

Recursion way is easy to think. Similar with "Minimum Depth of Binary Tree", time complexity is O(n).

 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         if (root == null)
13             return 0;
14         return Math.max(maxDepth(root.left), maxDepth(root.right)) + 1;
15     }
16 }

Solution 2 -- Iteration

We can still use level order traversal to get depth.

 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         if (root == null)
13             return 0;
14         List<TreeNode> current = new ArrayList<TreeNode>();
15         current.add(root);
16         List<TreeNode> next;
17         int result = 1;
18         while (current.size() > 0) {
19             next = new ArrayList<TreeNode>();
20             for (TreeNode tmpNode : current) {
21                 if (tmpNode.left != null)
22                     next.add(tmpNode.left);
23                 if (tmpNode.right != null)
24                     next.add(tmpNode.right);
25             }
26             current = next;
27             result++;
28         }
29         return result - 1;
30     }
31 }

 

Maximum Depth of Binary Tree 解答

原文:http://www.cnblogs.com/ireneyanglan/p/4834442.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!