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.left和node.right都是undefined,那为何可以回到上层root节点?然继续进行node.right的遍历。
1 回答
慕村225694
TA贡献1880条经验 获得超4个赞
preOrder(node.left);//当这个执行到最深,node.left和node.right都是undefined时,不就执行下 面的preOrder(node.right);,也就是你说的上层root节点
preOrder(node.right);
添加回答
举报
0/150
提交
取消