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.
這道題用遞歸會非常好做,但是會遍歷到每個葉子節(jié)點,這是不必要的,當一個節(jié)點的深度已經(jīng)大于之前的某個子節(jié)點的深度時候,這個節(jié)點的子節(jié)點就不必遍歷了。

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)<depth) {
            if (node.left) {
                node.left.val = node.val+1;
                stack.push(node.left);
            }
            if (node.right) {
                node.right.val = node.val+1;
                stack.push(node.right);
            }   
        }
        if (!node.left&&!node.right) {
            if (node.val<depth) {
                depth = node.val;
            }
        }
    }
    return depth;
};
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容