LeetCode 题解:144. 二叉树的前序遍历,使用栈,JavaScript,详细注释
原题链接:https://leetcode-cn.com/problems/binary-tree-preorder-traversal/
解题思路:
对于该题,我们可以首先看前序遍历对应的示意图,图片来自官方题解。
前序遍历最后的输出顺序,就是按照图中的1-2-3-4-5
。我们需要做的,其实是如何使用一个栈来实现这个过程。
从图片中,可以看到输出节点的顺序是由浅至深,从左到右。
每次循环时,将栈顶元素弹出1个,之后将其子元素入栈,保证了遍历由浅至深的顺序。
为了保证从右向左的顺序,我们必须将右节点先入栈,这样就保证了出栈时左节点优先,因此保证了遍历顺序。
版权声明: 本文为 InfoQ 作者【Lee Chen】的原创文章。
原文链接:【http://xie.infoq.cn/article/de1e2a84c571fd3fb0a8a5380】。文章转载请联系作者。
评论