树 —— 深度优先遍历
作者:互联网
数据结构:栈
使用递归:判断传入的节点是否为空,为空就return,根据遍历顺序丢给调用函数,再把当前的值赋给res数组
// 前序遍历
// var preOrder = function (root){
// let res = []
// let stack = []
// root && stack.push(root)
// while (stack.length>0){
// let temp = stack.pop()
// res.push(temp.val)
// temp.right && stack.push(temp.right)
// temp.left && stack.push(temp.left)
// }
// return res
// }
var preOrder = function (root){
let res = []
function traversal(root){
if (!root){
return
}
res.push(root.val)
traversal(root.left)
traversal(root.right)
}
traversal(root)
return res
}
// 中序遍历
var inOrder = function (root){
let res = []
function traversal(root){
if (!root){
return
}
traversal(root.left)
res.push(root.val)
traversal(root.right)
}
traversal(root)
return res
}
// 后序遍历
var thenOrder = function (root){
let res = []
function travelsal(root){
if (!root){
return
}
travelsal(root.left)
travelsal(root.right)
res.push(root.val)
}
travelsal(root)
return res
}
标签:function,优先,遍历,return,res,traversal,深度,push,root 来源: https://blog.csdn.net/tinyint_813/article/details/117851851