【Leetcode】Binary Tree Inorder Traversal
来源:互联网 发布:d3.js demo显示 编辑:程序博客网 时间:2024/04/24 21:55
【题目】
Given a binary tree, return the inorder traversal of its nodes' values.
For example:
Given binary tree {1,#,2,3}
,
1 \ 2 / 3
return [1,3,2]
.
Note: Recursive solution is trivial, could you do it iteratively?
【分析】inOrder:左根右
用一个stack 来记录根节点,以来访问右节点
内部第一个循环用来找到当前子树的最左点,然后在访问其根和右节点,如果右节点仍然有左子树,则在下一轮继续while继续找到最左。
有点点绕,需要多看看
【代码】
public List<Integer> inorderTraversal(TreeNode root) { List<Integer> res= new ArrayList<Integer>();while(root==null) return res;Stack<TreeNode> stack= new Stack<TreeNode>();while(root!=null||!stack.isEmpty()){while(root!=null){stack.push(root);root=root.left;}if(!stack.isEmpty()){root=stack.pop();res.add(root.val);root=root.right;}}return res; }另外一种神奇的方法,不需要Stack
见morris Traversal
0 0
- LeetCode: Binary Tree Inorder Traversal
- [LeetCode]Binary Tree Inorder Traversal
- LeetCode Binary Tree Inorder Traversal
- [Leetcode] Binary Tree Inorder Traversal
- Leetcode: Binary Tree Inorder Traversal
- LeetCode Binary Tree Inorder Traversal
- LeetCode : Binary Tree Inorder Traversal
- [Leetcode] Binary Tree Inorder Traversal
- 【leetcode】Binary Tree Inorder Traversal
- [LeetCode]Binary Tree Inorder Traversal
- Leetcode: Binary Tree Inorder Traversal
- [leetcode]Binary Tree Inorder Traversal
- LeetCode-Binary Tree Inorder Traversal
- Leetcode Binary Tree Inorder Traversal
- [leetcode] Binary Tree Inorder Traversal
- LeetCode - Binary Tree Inorder Traversal
- [LeetCode] Binary Tree Inorder Traversal
- LeetCode | Binary Tree Inorder Traversal
- utimes
- 3D Camera一点介绍
- 计算机常用术语解释
- 虚函数、虚继承、sizeof
- 剪花布条
- 【Leetcode】Binary Tree Inorder Traversal
- Hadoop-2.4.1学习之高可用ResourceManager
- 使用Hibernate需要导入的包
- 牛顿-拉夫逊法进行潮流计算matlab源程序
- R6034错误,C Runtime Error
- Rosetta stone
- 微信营销平台架构设计初解
- Requirements for IP Version 4 Routers
- SIGPIPE信号