数据结构:栈
使用递归:判断传入的节点是否为空,为空就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
}
本文详细介绍了如何使用递归方法进行栈的前序、中序和后序遍历,通过示例展示了如何在函数中判断节点是否为空并依次添加到结果数组中。
1500

被折叠的 条评论
为什么被折叠?



