【路飞】算法与数据结构-二叉树的后序遍历

95 阅读1分钟

LeetCode:地址

题目要求

给定一个二叉树,返回它的 后序 遍历。

示例 1:

输入: [1,null,2,3]  
   1
    \
     2
    /
   3 

输出: [3,2,1]

进阶:  递归算法很简单,你可以通过迭代算法完成吗?

思路
  • 递归的方式非常容易,只需要按照左右根的顺序去递归就行了
  • 在左右子树都遍历的情况下才把根节点放到结果集中
代码
/**
 * @param {TreeNode} root
 * @return {number[]}
 */
var postorderTraversal = function (root) {
  let res = [];
  const postOrder = (root) => {
    if (root == null) return;
    postOrder(root.left);
    postOrder(root.right);
    res.push(root.val);
  };
  postOrder(root);
  return res;
};