二叉树深度求解
①如果一棵树只有一个结点,它的深度为1。
②如果根结点只有左子树而没有右子树,那么树的深度应该是其左子树的深度加1;同样如果根结点只有右子树而没有左子树,那么树的深度应该是其右子树的深度加1。
③如果既有右子树又有左子树,那该树的深度就是其左、右子树深度的较大值再加1。
二叉树定义
二叉树结点包含:键、值、左链接、右链接、节点计数器
private class BinaryTreeNode
{
private Key key; //键
private Value val; //值
private Node left,right; //指向子树的链接
private int N; //以该节点为根的子树中的结点总数
public Node(Key key, Value val, int N){
this.key = key;
this.val = val;
this.N = N;
}
}
解题思路/C#
public static int GetTreeDepth(BinaryTreeNode root)
{
if (root == null)
{
return 0;
}
int left = GetTreeDepth(root.LeftChild);
int right = GetTreeDepth(root.RightChild);
return left >= right ? left + 1 : right + 1;
}
解题思路/java
class Solution {
public int maxDepth(TreeNode root) {
if(root == null) return 0;
int lDepth = maxDepth(root.left);
int rDepth = maxDepth(root.right);
return lDepth >= rDepth ? lDepth+1 : rDepth+1;
}
}