美文网首页
LeetCode 每日一题 [69] 二叉树的深度

LeetCode 每日一题 [69] 二叉树的深度

作者: 是小猪童鞋啦 | 来源:发表于2020-07-29 10:15 被阅读0次
    LeetCode 二叉树的深度 [简单]

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

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/er-cha-shu-de-shen-du-lcof

    例如:

    给定二叉树 [3,9,20,null,null,15,7],
    3
    / \
    9 20
    / \
    15 7
    返回它的最大深度 3 。

    提示:

    节点总数 <= 10000

    题目分析
    解法1

    DFS算法 后序遍历 此树的深度和其左(右)子树的深度之间的关系。显然,此树的深度 等于 左子树的深度 与 右子树的深度 中的 最大值 +1

    解法2

    层序遍历 BFS

    代码实现
    public class TreeNodeMaxDepth {
    
        public int maxDepth1(TreeNode root) {
            if (root == null) {
                return 0;
            }
            LinkedList<TreeNode> treeNodes = new LinkedList<TreeNode>() {{
                add(root);
            }}, temp;
            int res = 0;
            while (!treeNodes.isEmpty()) {
                temp = new LinkedList<>();
                for (TreeNode treeNode : treeNodes) {
                    if (treeNode.left != null) {
                        temp.add(treeNode.left);
                    }
                    if (treeNode.right != null) {
                        temp.add(treeNode.right);
                    }
                }
                treeNodes = temp;
                res++;
            }
            return res;
        }
    
        public int maxDepth(TreeNode root) {
            if (root == null) {
                return 0;
            }
            return Math.max(maxDepth(root.left), maxDepth(root.right)) + 1;
        }
    }
    
    

    相关文章

      网友评论

          本文标题:LeetCode 每日一题 [69] 二叉树的深度

          本文链接:https://www.haomeiwen.com/subject/monhzhtx.html