首页 > 其他 > 详细

二叉树的层序遍历和深度遍历

时间:2021-09-11 12:04:30      阅读:30      评论:0      收藏:0      [点我收藏+]

深度遍历

前序遍历

function DLR(arr,root) {
if(!root) return; //遍历结束条件
arr.push(root.val) //收集结果
DLR(arr, root.left)
DLR(arr, root.right)
}

中序遍历

function LDR(arr, root) {
if(!root) return;
LDR(arr, root.left);
arr.push(root.val)
LDR(arr, root.right)
}

后序遍历

function LRD(arr, root) {
if(!root) return;
LRD(root.left)
LRD(root.right)
arr.push(root.val)
}

层序遍历

function floorPrint_queue(arr, root) {
let brr = []
if(root) {
brr.push(root)
}
while(brr.length != 0) { //当队列没有值时结束遍历
arr.push(brr[0].val); //将队头的值保留下来
if(brr[0].left != null) { //将后面需要遍历的值从队尾插入
brr.push(brr[0].left)
}
if(brr[0].right != null) {
brr.push(brr[0].right)
}
brr.shift()
}
return arr;
}

二叉树的层序遍历和深度遍历

原文:https://www.cnblogs.com/taosifan/p/15250906.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!