求二叉树的深度

来源:互联网 发布:鼎捷软件股份有限公司 编辑:程序博客网 时间:2024/06/06 03:34
  • 剑指offer
    二叉树深度

一、题目描述: 题目来源

输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。

二、题目分析:递归

如果该树只有一个结点,它的深度为1.如果根节点只有左子树没有右子树,那么树的深度为左子树的深度加1;同样,如果只有右子树没有左子树,那么树的深度为右子树的深度加1。如果既有左子树也有游资是,那该树的深度就是左子树和右子树的最大值加1.
这个思路用递归实现如下:

/**public class TreeNode {    int val = 0;    TreeNode left = null;    TreeNode right = null;    public TreeNode(int val) {        this.val = val;    }}*/public class Solution {    public int TreeDepth(TreeNode root) {        if(root==null) return 0;        int left=0;        int right=0;        if(root.left!=null){            left=TreeDepth(root.left);        }        if(root.right!=null){            right=TreeDepth(root.right);        }        return left>right?left+1:right+1;         }}
0 0
原创粉丝点击