leetcode--BinaryTreeInorderTraversal
来源:互联网 发布:复杂网络的混沌同步 编辑:程序博客网 时间:2024/06/05 05:20
二叉树中序遍历非递归实现:
利用两层循环以及stack,第一层循环代替总的递归过程,第二个循环代替先序遍历时逐层向下访问左节点。第一层循环用stack为空作为控制条件,第二层循环当前节点没有左节点就结束了。
public List<Integer> inorderTraversal(TreeNode root) { if (root == null) return new ArrayList<Integer>(); Stack<TreeNode> stack = new Stack<TreeNode>(); List<Integer> list = new ArrayList<Integer>(); stack.push(root); TreeNode current = root; while (!stack.empty()) { while (current != null) { current = current.left; if(current!=null)stack.push(current); } list.add(stack.peek().val); if (stack.peek().right != null) { current = stack.peek().right; stack.pop(); stack.push(current); }else stack.pop(); } return list; }
0 0
- leetcode--BinaryTreeInorderTraversal
- 92.BinaryTreeInorderTraversal
- 94BinaryTreeInorderTraversal
- LeetCode94 BinaryTreeInorderTraversal Java题解(递归 迭代)
- leetcode
- [leetcode]
- LeetCode
- leetcode
- leetcode
- leetcode:
- leetcode:
- LeetCode
- leetcode
- LEETCODE
- leetcode
- leetCode
- leetcode
- [leetcode]
- [漏洞分析] AnimaGallery 2.6 - Local File Inclusion
- BlockingQueue、PriorityBlockingQueue
- 如何通过JQuery将DIV的滚动条滚动到指定的位置
- 登录验证码的实现
- UVA11235:Frequent values(RMQ)
- leetcode--BinaryTreeInorderTraversal
- hdu 3037 Saving Beans(组合数学+lucas定理)
- 光流法(Optical Flow)
- Android即时聊天系统--随聊APP之接口定义
- sencha grid templatecolumn模板列和actioncolumn
- Java关键字final
- unity3d easytouch教程
- 学习HTML5 canvas第一天
- Maven最佳实践