今天写leetcode的二叉树后序遍历时,看到了一个视频讲解二叉树的遍历方式,讲的很详细的还是, 总结一下:
- 深度优先遍历
-
递归
递归要注意几个关键因素
确定递归函数的参数和返回值确定中止条件确定递归的单层逻辑
-
非递归
- 广度优先遍历
单层逻辑
-
- 前序 【根左右】
-
- 中序 【左根右】
-
- 后序 【左右根】
知道这个逻辑之后代码实现就很简单了
var postorderTraversal = function (root) {
const res = []
const rootnode = (root) => {
// 中止条件,空节点直接返回
if(root === null) return
rootnode(root.left)
rootnode(root.right)
res.push(root.val)
}
rootnode(root)
}