博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
94. 二叉树的中序遍历
阅读量:4497 次
发布时间:2019-06-08

本文共 1268 字,大约阅读时间需要 4 分钟。

题意

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

解题思路

  1. 递归:往左子结点深度递归,在其代码下面加入当前结点的值,接着往右子结点进行深度递归;

  2. 迭代:利用栈后进先出的特性,一直将左子结点都加入到栈中,直到其不存在时,将当前结点的值加入到结果列表中,接着将当前结点的右结点加入到栈中;

实现

class Solution(object):     def inorderTraversal(self, root):         """         递归实现         :type root: TreeNode         :rtype: List[int]         """         result = []         if not root:             return result                  def helper(node, res):             if not node:                 return             helper(node.left, res)             res.append(node.val)             helper(node.right, res)                  helper(root, result)         return result       def inorderTraversal(self, root):         """         迭代实现         执行用时 : 44 ms, 在Binary Tree Inorder Traversal的Python提交中击败了1.11% 的用户     内存消耗 : 11.9 MB, 在Binary Tree Inorder Traversal的Python提交中击败了0.89% 的用户         :type root: TreeNode         :rtype: List[int]         """         result = []         stack = []         cur = root         while cur or stack:             if cur:                 stack.append(cur)                 cur = cur.left             else:                 cur = stack.pop()                 result.append(cur.val)                 cur = cur.right         return result

转载于:https://www.cnblogs.com/George1994/p/10605030.html

你可能感兴趣的文章
win7下安装配置nodejs、使用npm安装express
查看>>
DB2某建表语句
查看>>
Android开发之Fragment的替换显示反复创建问题
查看>>
Hive修改表
查看>>
Sun JVM 内存模型及垃圾回收策略
查看>>
第3周实践项目7 删除链表元素最大值
查看>>
洛谷2408不同字串个数/SPOJ 694/705 (后缀数组SA)
查看>>
s12-day03-work01 python修改haproxy配置文件(初级版本)
查看>>
html5 聊天 宿舍 宿舍列表
查看>>
音乐的作曲形式
查看>>
matlab 各种文件的读取(及读写问题的解决)
查看>>
ie9下 “__flash__removeCallback”未定义
查看>>
Java虚拟机垃圾回收:基础点(转载)
查看>>
第五章项目----租房网
查看>>
CodeForces 834C The Meaningless Game (机智)
查看>>
深入分析 Java I/O 的工作机制(转)
查看>>
Python高级特性:迭代器和生成器 -转
查看>>
修炼编程的内功
查看>>
Ext JS - Ext.grid.feature.Grouping 分组表格
查看>>
ZConfig手册
查看>>