0104. Maximum Depth of Binary Tree (E)

Maximum Depth of Binary Tree (E)

题目

Given a binary tree, find its maximum depth.

The maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node.

Note: A leaf is a node with no children.

Example:

Given binary tree [3,9,20,null,null,15,7],

    3
   / \
  9  20
    /  \
   15   7

return its depth = 3.


题意

求二叉树的最大深度。

思路

DFS或者BFS。


代码实现

Java

DFS

class Solution {
    public int maxDepth(TreeNode root) {
        return root == null ? 0 : Math.max(maxDepth(root.left), maxDepth(root.right)) + 1;
    }
}

BFS

class Solution {
    public int maxDepth(TreeNode root) {
        Queue<TreeNode> q = new ArrayDeque<>();
        int depth = 0;
        if (root != null) {
            q.offer(root);
        }

        while (!q.isEmpty()) {
            depth++;
            int size = q.size();
            for (int i = 0; i < size; i++) {
                TreeNode cur = q.poll();
                if (cur.left != null) q.offer(cur.left);
                if (cur.right!=null) q.offer(cur.right);
            }
        }

        return depth;
    }
}

JavaScript

/**
 * @param {TreeNode} root
 * @return {number}
 */
var maxDepth = function (root) {
  return root ? Math.max(maxDepth(root.left), maxDepth(root.right)) + 1 : 0
}
上一篇:559. Maximum Depth of N-ary Tree


下一篇:python求二叉树深度