LeetCode 144. 二叉树的前序遍历
二叉树的前序遍历
对于这道题,这里我采用的是非递归的方法,非递归方法则需要二叉树结构配合栈数据结构完成。
思路很简单,首先将二叉树的根节点压栈,再从栈中取出栈顶的节点,得到节点值后,存入到list集合中,同时判断该节点是否存在左右子节点,若存在左右节点,则继续入栈,需要注意的是,因为栈数据结构的特点(先进后出),所以这里我先将右节点入栈,再将根节点的左节点入栈,这样保证了先取出的是左节点。(建议在明白思路后,在草稿纸上画一下这样的步骤。)
二叉树的前序遍历
对于这道题,这里我采用的是非递归的方法,非递归方法则需要二叉树结构配合栈数据结构完成。
思路很简单,首先将二叉树的根节点压栈,再从栈中取出栈顶的节点,得到节点值后,存入到list集合中,同时判断该节点是否存在左右子节点,若存在左右节点,则继续入栈,需要注意的是,因为栈数据结构的特点(先进后出),所以这里我先将右节点入栈,再将根节点的左节点入栈,这样保证了先取出的是左节点。(建议在明白思路后,在草稿纸上画一下这样的步骤。)