代码是网上的。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 回答

慕哥6287543
TA贡献1831条经验 获得超10个赞
preOrder(node.left);//当这个执行到最深,node.left和node.right都是undefined时,不就执行下 面的preOrder(node.right);,也就是你说的上层root节点
preOrder(node.right);
- 1 回答
- 0 关注
- 646 浏览
添加回答
举报
0/150
提交
取消