public class BinaryTreeDepth {
/**
* 递归思想: 如果一棵树只有一个节点,那么它的深度为1。如果有左子树和右子树,
* 那么它的深度十左子树和右子树之间较大者的深度 再+1。
*
* @param node 根节点
* @return 深度
*/
public static int getDepth(TreeNode<Integer> node) {
if (node == null) return 0;
int left = getDepth(node.leftNode);
int right = getDepth(node.rightNode);
return (left > right) ? (left + 1) : (right + 1);
}
}
public class TreeNode<T> {
public T value;
public TreeNode leftNode;
public TreeNode rightNode;
public TreeNode(T value) {
this.value = value;
leftNode = null;
rightNode = null;
}
}