二叉树深度求解
①如果一棵树只有一个结点,它的深度为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;
}
}
