前后中序的递归写法
递归
- 确定递归函数的参数和返回值
- 确定终止条件
- 确定单层递归的逻辑
前序遍历
js
var preorderTraversal = function(root) {
let arr = []
digui(root,arr)
return arr
};
var digui = function(root,arr){
if(root===null) return
arr.push(root.val) //前
digui(root.left,arr)
digui(root.right,arr)
}
中序遍历
js
var postorderTraversal = function(root) {
let arr = []
digui(root,arr)
return arr
};
var digui = function(root,arr){
if(root===null) return
digui(root.left,arr)
arr.push(root.val) //中
digui(root.right,arr)
}
后序遍历
js
var postorderTraversal = function(root) {
let arr = []
digui(root,arr)
return arr
};
var digui = function(root,arr){
if(root===null) return
digui(root.left,arr)
digui(root.right,arr)
arr.push(root.val) //后
}