美文网首页
leetcode104:二叉树的最大深度

leetcode104:二叉树的最大深度

作者: 杨柳滔滔 | 来源:发表于2019-07-22 21:58 被阅读0次

    给定一个二叉树,找出其最大深度。

    二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。

    说明: 叶子节点是指没有子节点的节点。

    示例:
    给定二叉树 [3,9,20,null,null,15,7],
    
      3
     / \
    9  20
    /  \
    15   7
    

    返回它的最大深度 3 。

    思路

    • DFS

    代码

    //iterative dfs
        public int maxDepth(TreeNode root) {
            if(root == null) {
                return 0;
            }
    
            Stack<TreeNode> stack = new Stack<>();
            Stack<Integer> value = new Stack<>();
            stack.push(root);
            value.push(1);
            int depth = 0;
            while(!stack.isEmpty()) {
                TreeNode node = stack.pop();
                int temp = value.pop();
                depth = Math.max(temp, depth);
                if(node.left != null) {
                    stack.push(node.left);
                    value.push(temp+1);
                }
                if(node.right != null) {
                    stack.push(node.right);
                    value.push(temp+1);
                }
            }
            return depth;
        }
    

    相关文章

      网友评论

          本文标题:leetcode104:二叉树的最大深度

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