给定一个二叉树,返回它的 **后序** 遍历。 **示例:** ```js 输入: [1,null,2,3] 1 \ 2 / 3 输出: [3,2,1] ``` 进阶: 递归算法很简单,你可以通过迭代算法完成吗? 附赠leetcode地址:[leetcode](https://leetcode-cn.com/problems/binary-tree-postorder-traversal/solution/javascriptjie-er-cha-shu-de-hou-xu-bian-li-by-user/)
Activity
7777sea commentedon May 13, 2020
plane-hjh commentedon May 13, 2020
后序遍历
后序遍历:先访问左节点,再访问右节点,最后访问根节点递归版本
迭代版本
luweiCN commentedon May 13, 2020
syc666 commentedon May 13, 2020
sisterAn commentedon May 13, 2020
递归实现
迭代实现
解题思路: 后序遍历与前序遍历不同的是:
后序遍历是左右根
而前序遍历是根左右
如果我们把前序遍历的
list.push(node.val)变更为list.unshift(node.val)(遍历结果逆序),那么遍历顺序就由 根左右 变更为 右左根然后我们仅需将 右左根 变更为 左右根 即可完成后序遍
复杂度分析:
空间复杂度:O(n)
时间复杂度:O(n)
leetcode
2hangJing commentedon Aug 31, 2021
后序遍历:l -> r -> m,通过左右镜像得到:m -> r -> l。所以只用实现 根 -> 右 -> 左,再通过 unshift 倒叙输出到数组中即实现后续遍历。