java 求二叉树深度
--------------------------------------------------------------------------------------------------------------------------------------
算法很简单,就是比较左子节点深度 右节点深度
还有一个核心内容就是如果有值就+1,+1这个是整个算法的核心。
package javatest.suanfa.Erchashu;
public class dept {
int height(TreeNode T)
{
if (T==null) {
return 0;
}
int l=height(T.getLeftChild());
int r=height(T.getRightChild());
System.out.println("l==="+l+"---r=="+r+"------T==="+T.val);
if (l>r) {
return (l+1);
}
return (r+1);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
TreeNode node = new TreeNode(1);
TreeNode node21 = new TreeNode(21);
TreeNode node22 = new TreeNode(22);
TreeNode node31 = new TreeNode(31);
TreeNode node32 = new TreeNode(32);
TreeNode node33 = new TreeNode(33);
TreeNode node43 = new TreeNode(43);
node.setLeftChild(node21);
node.setRightChild(node22);
node21.setLeftChild(node31);
node21.setRightChild(node32);
node22.setRightChild(node33);
node33.setRightChild(node43);
dept dp = new dept();
System.out.println(dp.height(node));
}
}
--------------------------------------------------------------------------------------------------------------------------------------
小奋斗文章
--------------------------------------------------------------------------------------------------------------------------------------