其他分享
首页 > 其他分享> > 二叉树的层序遍历和深度遍历

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

作者:互联网

深度遍历

前序遍历

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;
}

标签:arr,遍历,层序,brr,right,二叉树,push,root
来源: https://www.cnblogs.com/taosifan/p/15250906.html