111. Minimum Depth of Binary Tree

Given a binary tree, find its minimum depth.

The minimum depth is the number of nodes along the shortest path from the root node down to the nearest leaf node.
这道题用递归会非常好做,但是会遍历到每个叶子节点,这是不必要的,当一个节点的深度已经大于之前的某个子节点的深度时候,这个节点的子节点就不必遍历了。

var minDepth = function(root) {
    if(root === null) return 0;
    var left = minDepth(root.left);
    var right = minDepth(root.right);
    return (left === 0 || right === 0) ? left + right + 1: Math.min(left,right) + 1;
};

非递归

var minDepth = function(root) {
    if (!root)
        return 0;
    var depth = 99999;
    root.val = 1;
    var stack = [root];
    while (stack.length!==0) {
        var node = stack.pop();
        
        if ((node.val+1)

你可能感兴趣的:(111. Minimum Depth of Binary Tree)