思路:

1. 使用一个栈保存结点(列表实现);

2. 如果结点存在,入栈,然后将当前指针指向左子树,直到为空;

3. 当前结点不存在,则出栈栈顶元素,并把当前指针指向栈顶元素的右子树;

4. 栈不为空,循环2、3部。

代码如下,解决了leetcode94. Binary Tree Inorder Traversal:

# Definition for a binary tree node.
# class TreeNode(object):
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None class Solution(object):
def inorderTraversal(self, root):
"""
:type root: TreeNode
:rtype: List[int]
"""
ret = []
stack = []
while root or stack:
while root:
stack.append(root)
root = root.left
if stack:
t = stack.pop()
ret.append(t.val)
root = t.right
return ret

最新文章

  1. 用遗传算法GA改进CloudSim自带的资源调度策略(2)
  2. 美女jquery图片播放器插件
  3. php : 基础(1)
  4. Python错误和异常学习
  5. myrocks记录格式分析
  6. js中的console很强大
  7. 如何查看某个查询用了多少TempDB空间
  8. AngularJs 简单实现全选,多选操作
  9. QC学习三:Excel数据导入导出QC操作流程
  10. 解决Web部署 svg/woff/woff2字体 404错误(转)
  11. 符号渲染篇——Symbol
  12. EL表达式运算符
  13. ubuntu 新建zend framework 项目
  14. windows bat脚本编写
  15. 关于identifier was truncated to '255' characters
  16. C# 之 托付
  17. angularjs的forEach使用
  18. Flex动态获取数据,服务中断报错
  19. protobuf(quickStart)
  20. 两层c:forEach循环嵌套

热门文章

  1. MySQL实现计算两点之间的距离
  2. [转]vc中调用其他应用程序的方法(函数) winexec,shellexecute ,createprocess
  3. Try-Catch-Finally代码块中的return
  4. speech-to-text-wavenet
  5. tar 命令出现 Cowardly refusing to create an empty archive 问题详解
  6. springboot 出现 org.hibernate.LazyInitializationException: could not initialize proxy
  7. hive 调优(一)coding调优
  8. Linux命令行提交更新冲突
  9. Maven的New中没有Servlet问题(IDEA)
  10. 牛顿法与拟牛顿法(三) DFP算法