五分钟学会理解二叉树的前序遍历

LeetCode上第144 号问题:二叉树的前序遍历

题目

给定一个二叉树,返回它的 前序 遍历。

示例:

输入: [1,null,2,3]

《五分钟学会理解二叉树的前序遍历》 image

输出: [1,2,3]
进阶: 递归算法很简单,你可以通过迭代算法完成吗?

解题思路

栈(Stack)的思路来处理问题。

前序遍历的顺序为根-左-右,具体算法为:

  • 把根节点push到栈中
  • 循环检测栈是否为空,若不空,则取出栈顶元素,保存其值
  • 看其右子节点是否存在,若存在则push到栈中
  • 看其左子节点,若存在,则push到栈中。

动画演示

动画演示GIF有点大,请稍微等待一下加载显示_

《五分钟学会理解二叉树的前序遍历》 动画演示

参考代码

《五分钟学会理解二叉树的前序遍历》 参考代码

更多内容

《五分钟学会理解二叉树的前序遍历》 image

    原文作者:程序员小吴师兄
    原文地址: https://www.jianshu.com/p/88af12725af8
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞