关于js二叉树遍历的问题?
class TreeNode {
constructor(val) {
this.val = val;
this.left = this.right = null;
}
}
function init(){
var root = new TreeNode(5)
var node1 = new TreeNode(4)
var node2 = new TreeNode(8)
var node3 = new TreeNode(11)
var node4 = new TreeNode(13)
var node5 = new TreeNode(4)
var node6 = new TreeNode(7)
var node7 = new TreeNode(2)
var node8 = new TreeNode(1)
root.left = node1
root.right = node2
node1.left = node3
node2.left = node4
node2.right = node5
node3.left = node6
node3.right = node7
node5.right = node8
return root
}
var root = init()
init后得到这样一棵二叉树
如何遍历才能得到这样的数据?????
var result = [
[5, 4, 11, 7],
[5, 4, 11, 2],
[5, 8, 13],
[5, 8, 4, 1],
]
即按照分支左右分支遍历(描述可能有问题,大概是这个意思)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
想象一下,在任何一个节点,你手里有这个节点和一条从根下来的路径。
接下来就是选择节点的下级路径中的每一条了,如果没有下级,则路径就是当前路径了。
以上是广度优先遍历。也可以深度优先:
前序遍历+叶子节点判断