【数据结构】二叉树的疑惑

var tree = {

    value: 1,

    left: {

        value: 2,

        left: {

           value: 4

        },

        right: {

           value: 8

        }

    },

    right: {

        value: 3,

        left: {

           value: 5,

           left: {

               value: 7

           },

           right: {

               value: 8

           }

        },

        right: {

           value: 6

        }

    }

}

先序遍历的递归算法:

var preOrder = function (node) { 
    if (node) {  
        console.log(node.value);
        preOrder(node.left);
        preOrder(node.right);
     }
}

我有点不明白的地方是,当node是最深的那个节点,那就是node.leftnode.right都是undefined,那为何可以回到上层root节点?然继续进行node.right的遍历。


慕慕森
浏览 759回答 1
1回答

慕村225694

    preOrder(node.left);//当这个执行到最深,node.left和node.right都是undefined时,不就执行下        面的preOrder(node.right);,也就是你说的上层root节点    preOrder(node.right);
打开App,查看更多内容
随时随地看视频慕课网APP