LeetCode 题解:145. 二叉树的后序遍历,栈,JavaScript,详细注释
原题链接:145. 二叉树的后序遍历
解题思路:
对于该题,我们可以首先看后续遍历对应的示意图,图片来自官方题解。
后续遍历最后的输出顺序,就是按照图中的1-2-3-4-5
。我们需要做的,其实是如何使用一个栈来实现这个过程。
从图片中,可以看到输出节点的顺序是从下到上,从左到右。
我们可以使用栈来进行遍历,每次循环入栈元素都为从上到下,从左到右。
那么每次循环时出栈元素的顺序都为从上到下,从右到左。
但此时的栈的元素输出顺序与需要的结果顺序正好相反。
解决方案就是将输出的结果插入到结果数组的头部,这样最终输出结果顺序就为从下到上,从左到右。
复制代码
版权声明: 本文为 InfoQ 作者【Lee Chen】的原创文章。
原文链接:【http://xie.infoq.cn/article/0c66695f72770469afd806563】。文章转载请联系作者。
评论