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

深度遍历

前序遍历

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

上一篇:8.18Go之变量作用域


下一篇:1.将数字1-10保存到一个长度为10的一维数组中 2.定义一个新数组,长度为3,取出原来数组中随机三个元素(不考虑是否重复) 3.给新数组的元素赋值 4.求新数组所有和