码迷,mamicode.com
首页 > 其他好文 > 详细

Maximum Depth of Binary Tree-求二叉树高度

时间:2015-06-24 12:26:34      阅读:98      评论:0      收藏:0      [点我收藏+]

标签:

非递归:
public static int maxDepth(TreeNode root){ if(root==null) return 0; Queue<TreeNode> q=new LinkedList<TreeNode>(); q.offer(root); int enQueNum=1; int visitedNum=0; int lastLevNum=1; //做标记 标记到每层最后的节点 当visitedNum与它相等时本层结束 int height=0; while(!q.isEmpty()){ TreeNode now=q.poll(); visitedNum++; if(now.left!=null){ q.offer(now.left); enQueNum++; } if(now.right!=null){ q.offer(now.right); enQueNum++; } if(visitedNum==lastLevNum){ height++; lastLevNum=enQueNum;//lastLevNum的值赋为此时最后进队列的节点数值也是本层的最后节点 } } return height; }

 递归:

public static int maxDepth2(TreeNode root){
            if(root==null) return 0;            
            int leftHeight=0;
            int rightHeight=0;
            leftHeight=maxDepth2(root.left);
            rightHeight=maxDepth2(root.right);
            return leftHeight>rightHeight?leftHeight+1:rightHeight+1;
     }

 

Maximum Depth of Binary Tree-求二叉树高度

标签:

原文地址:http://www.cnblogs.com/hhhhh/p/4597165.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!