[leetcode二叉树系列]1 二叉树的中序遍历

13b4ed2033510c3dc7d313034c4f0993.gif


 本文涉及知识点 

  • 二叉树的基本概念

  • 栈的运用

二叉树的基本概念和栈的相关概念前面已经介绍,忘记了的小伙伴复习后再看效果一定翻倍哟!

二叉树知识复习:[今天给二叉树加个BGM,二叉树唱歌了!]

栈知识复习:[leetcode栈队列]1 栈实现队列

1Leetcode94 二叉树的中序遍历

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





示例1:

 [1,null,2,3]
   1
    \
     2
    /
   3 [1,3,2]




小蓝希望大家在此思考1分钟,

效果更好哈!

0 1题目解析
  • 思路

基本思路

对于一颗二叉树,我们能拿到根节点的root指针,首先访问的是根节点。但是我们需要按照左子树,根节点,右子树的顺序输出,那么什么数据结构有先出现后出来的特点,这就引入了


  • 从根节点访问,依次访问其左节点并入栈。

759f1cba8ef9f15600869dffc17d10a8.png

  • 如果为NULL,弹出栈顶元素并将此元素的右节点放入栈中,重复此步骤。如上图D没有左右节点,此时弹出栈顶D,B,此时B存在右节点则入栈如下图。

b224470ec8f27097dc3a0e987672da92.png



02 代码实现

1c++版本

dc6f7781e18d161a678e815d593d5a2c.jpeg

2python版本

dfc7e331da8c136126345a2f26e7395c.jpeg

3java版本

fc7f546b42f261208c40e3fb6baaec7d.jpeg


猜你喜欢

转载自blog.51cto.com/14984904/2545484