var tree={
value:1,
left:{
value:2,
left:{
value:4
}
},
right:{
value:3,
left:{
value:5,
left:{
value:7
},
right:{
value:8
}
},
right:{
value:6
}
}
} //一个二叉树
function preOrder(node){ //先序遍历
if(node){
console.log(node.value);
preOrder(node.right);
preOrder(node.right);
}
}
preOrder(tree); //求个方法,让输出二叉树时有个时间间隔,停顿一到两秒再输出下一个
1 回答
已采纳
风筝_0010
TA贡献45条经验 获得超15个赞
你这个先序遍历有问题吧,第一个preOrder里面不该是node.left?怎么两个node.right?
你可以定义一个数组arr,然后每次把node.value给push进去,之后你会得到一个按先序遍历顺序排列的数组,之后从头打印数组里面的值。
比如:
arr.forEach(function(value, i) { setTimeout(function() { console.log(value); }, 1000*i); // 这样就会以1s为间隔打印了 })
添加回答
举报
0/150
提交
取消