二叉树的后续遍历

176 阅读1分钟

今天写leetcode的二叉树后序遍历时,看到了一个视频讲解二叉树的遍历方式,讲的很详细的还是, 总结一下:

  1. 深度优先遍历
  • 递归
    

递归要注意几个关键因素 确定递归函数的参数和返回值 确定中止条件 确定递归的单层逻辑

  • 非递归
    
  1. 广度优先遍历

单层逻辑

    1. 前序 【根左右】
    1. 中序 【左根右】
    1. 后序 【左右根】

知道这个逻辑之后代码实现就很简单了

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