Q39:二叉树的深度(递归实现)

来源:互联网 发布:1password mac 破解版 编辑:程序博客网 时间:2024/05/17 23:22
import javax.swing.RootPaneContainer;
import BinaryTree.BinaryTreeNode;
//二叉树的深度
public class Q39 {
/*
* 题目:输入一棵二叉树的根节点,求该树的深度
* 思路:采用递归算法:树的高度=1(根节点)+max{左子树的深度,右子树的深度};
*/
public static void main(String[] args) {
BinaryTreeNode root1 = new BinaryTreeNode();
BinaryTreeNode node1 = new BinaryTreeNode();
BinaryTreeNode node2 = new BinaryTreeNode();
BinaryTreeNode node3 = new BinaryTreeNode();
BinaryTreeNode node4 = new BinaryTreeNode();
root1.leftNode = node1;
root1.rightNode = node2;
node1.leftNode = node3;
node1.rightNode = node4;
root1.value = 10;
node1.value = 5;
node2.value = 12;
node3.value = 4;
node4.value = 7;
Q39 test = new Q39();
System.out.println(test.TreeDepth(root1));
}
//递归实现求树的深度
public int TreeDepth(BinaryTreeNode root){
if(root == null){
return 0;
}
int nleft = TreeDepth(root.leftNode);
int nright = TreeDepth(root.rightNode);
//返回树的深度
return (nleft > nright) ? (nleft + 1): (nright + 1);
}


}
0 0
原创粉丝点击