二叉樹中序遍歷JavaScript遞歸和非遞歸實(shí)現(xiàn)方法

// 中序遍歷,左中右
var TreeNode = {
    val: 1,
    left: {
        val: 2,
        left: {
          val: 4,
        },
        right: {
            val: 5
        }
    },
    right: {
        val: 3,
        left: {
            val: 6,
        },
        right: {
            val: 7
        }
    }
};


var inOrderRecur = function (root) {
    var list = [];
    var inOrder = function(root){
        if (root === undefined) {
            return root;
        }
        inOrder(root.left);
        list.push(root.val);
        inOrder(root.right);
    }
    inOrder(root)
    return list;
}

var inOrderUnRecur = function(root){
    var stack = [];
    var list = [];
    var head = root;
    while(stack.length !== 0 || head !== undefined){
        while(head !== undefined){
            stack.push(head);
            head = head.left;
        }

        if(stack.length !== 0){
            head = stack.pop();
            list.push(head.val);
            head = head.right;
        }
    }
    return list;
};

// var listRecur = inOrderRecur(TreeNode);
// console.log('遞歸中序遍歷',listRecur);

var listUnRecur = inOrderUnRecur(TreeNode);
console.log('非遞歸中序遍歷',listUnRecur);

// [4, 2, 5, 1, 6, 3, 7]
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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