LeetCode OJ平台上Binary Tree Inorder Traversal题目使用java堆栈方式实现
来源:互联网 发布:学编程用什么笔记本 编辑:程序博客网 时间:2024/06/05 18:13
原始题目,就是要求中序遍历二叉树,不能使用递归。
实现代码如下,先把root以及所有的左节点入栈。
当某节点左孩子为空,说明这个节点是最左节点,将它出栈,同时将它右孩子以及右孩子的所有左节点入栈。
源代码如下:
import java.util.*;public class Solution {public static List<Integer> inorderTraversal(TreeNode root){ArrayDeque<TreeNode> stack = new ArrayDeque<TreeNode>();List<Integer> a = new LinkedList<Integer>();if(root == null){return a;}else{stack.add(root);while(stack.peekLast().left != null){stack.add(stack.peekLast().left);}while(!stack.isEmpty()){TreeNode tmp = stack.removeLast();a.add(tmp.val);//System.out.println(tmp.val);if(tmp.right != null){stack.add(tmp.right);tmp = tmp.right;while(tmp.left != null){stack.add(tmp.left);tmp = tmp.left;}}}return a;}}public static void main(String args[]){List<Integer> c = new LinkedList<Integer>();TreeNode p = new TreeNode(1);TreeNode p2 = new TreeNode(2);TreeNode p3 = new TreeNode(3);TreeNode p4 = new TreeNode(4);TreeNode p5 = new TreeNode(5);TreeNode p6 = new TreeNode(6);TreeNode p7 = new TreeNode(7);p.left = p2;p.right = p5;p2.left = p3;p2.right = p4;p3.left = null;p3.right = null;p4.left = null;p4.right = null;p5.left = null;p5.right = null;c = inorderTraversal(p);for(int i = 0; i < c.size(); i ++ ){System.out.println(c.get(i));}}}
0 0
- LeetCode OJ平台上Binary Tree Inorder Traversal题目使用java堆栈方式实现
- LeetCode OJ平台上Binary Tree Postorder Traversal题目用java堆栈实现
- Leetcode OJ平台上的Binary Tree Preorder Traversal题目用java ArrayDeque实现
- LeetCode OJ:Binary Tree Inorder Traversal
- [LeetCode OJ]Binary Tree Inorder Traversal
- LeetCode OJ Binary Tree Inorder Traversal
- [Leetcode] Binary Tree Inorder Traversal (Java)
- Binary Tree Inorder Traversal LeetCode Java
- 【Leetcode】Binary Tree Inorder Traversal in JAVA
- [LeetCode][Java] Binary Tree Inorder Traversal
- leetcode-94:Binary Tree Inorder Traversal (Java)
- leetcode:Binary Tree Inorder Traversal 【Java】
- LeetCode 94 -Binary Tree Inorder Traversal ( JAVA )
- leetcode-java-94. Binary Tree Inorder Traversal
- 【leetcode】94. Binary Tree Inorder Traversal【java】
- LeetCode OJ:Construct Binary Tree from Inorder and Postorder Traversal
- LeetCode OJ:Construct Binary Tree from Preorder and Inorder Traversal
- LeetCode OJ --问题与解答 Binary Tree Inorder Traversal
- 第三篇——第二部分——第三文 配置SQL Server镜像——域环境
- 物种分布建模的例子
- [Android内存分析] 使用MAT工具做内存泄露分析一
- 黑马程序员——认识JAVA
- linux 后台进程如何不受shell退出的影响
- LeetCode OJ平台上Binary Tree Inorder Traversal题目使用java堆栈方式实现
- 摆脱科技僵尸,回归生龙活虎
- Jboss7+HornetQ(持久订阅)
- 仿百度输入框自动匹配功能的JS代码
- 处理驾校学员系统编号重复的问题
- 矩阵原地转置
- Test
- 补充个python监控小函数,证书过期发送警告
- 如何修改myeclipse中web项目的工作路径或默认路径