/**
* Definition for a binary tree node.
* function TreeNode(val) {
* this.val = val;
* this.left = this.right = null;
* }
*/
/**
* @param {TreeNode} root
* @return {number}
*/
var maxDepth = function (root) {
if (!root) return 0;
let height = 0;
const queue = [root];
while (queue.length) {
let len = queue.length;
height++;
while (len > 0) {
const node = queue.shift();
node.left && queue.push(node.left);
node.right && queue.push(node.right);
len--;
}
}
return height;
};
Python Code
# Definition for a binary tree node.
# class TreeNode(object):
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution(object):
def maxDepth(self, root):
"""
:type root: TreeNode
:rtype: int
"""
queue = []
if root is not None: queue.append(root)
height = 0
while True:
nodeCount = len(queue)
if nodeCount == 0: return height
height += 1
while nodeCount > 0:
node = queue.pop(0)
if node.left is not None: queue.append(node.left)
if node.right is not None: queue.append(node.right)
nodeCount -= 1