LeetCode 144. Binary Tree Preorder Traversal
问题描述
给定一颗二叉树,以先序遍历的顺序返回其节点。
栗子:
最后,题主还附加了一句:使用递归没啥,你能够用遍历的方式完成吗?
解题思路
首先,介绍一下先序遍历。
始终是先遍历根节点,再遍历左节点,最后遍历右节点。对于子树也一样。
递归
使用递归的方式是最简单的,按根节点 -> 左节点 -> 右节点的顺序即可。
由于题目要求返回遍历的节点,因此将节点存入数组就好。
直接上代码:
遍历
如果以遍历的方式,稍微复杂一丢丢,但是实现起来也不困难。
主要是利用栈的思想,先进后出。由于左节点要先于右节点遍历,因此将右节点先进栈,左节点后进栈。
该实现的 js 代码如下:
版权声明: 本文为 InfoQ 作者【liu_liu】的原创文章。
原文链接:【http://xie.infoq.cn/article/fb724d0a089102ff2a2c8d62c】。文章转载请联系作者。
评论