先序遍历二叉树
2015-08-16 22:30
288 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/kakabest123/article/details/47708231
递归方式先序遍历二叉树:
遍历顺序:根,左,右
public static List<Integer> preorderTraversal(TreeNode root) { if(root == null) return Collections.EMPTY_LIST; List<Integer> list = new ArrayList<Integer>(); list.add(root.val); list.addAll(preorderTraversal(root.left));//注意使用List.addAll()方便了很多 list.addAll(preorderTraversal(root.right)); return list; }
public static List<Integer> preorderTraversal(TreeNode root) { List<Integer> list = new ArrayList<Integer>(); if(root == null) return list; Stack<TreeNode> st = new Stack<TreeNode>(); st.push(root); while(!st.isEmpty()){ TreeNode tmp = st.pop();//先遍历的根节点入栈 list.add(tmp.val); if(tmp.right != null) st.push(tmp.right);//由于栈结果是后进先出,所以右节点先入栈,保证左节点先出栈 if(tmp.left != null) st.push(tmp.left); } return list; }
相关文章推荐
- java实现二叉树已知先序遍历和中序遍历求后序遍历
- python数据结构之树和二叉树(先序遍历、中序遍历和后序遍历)
- java建立二叉树,递归/非递归先序遍历,递归/非递归中序遍历,层次遍历
- Binary Tree Preorder Traversal--二叉树的先序遍历
- 【二叉树】建立 | 先序遍历 | 中序遍历 | 后序遍历 | 层次遍历
- 线索化二叉树(先序遍历建立二叉树,中序线索化二叉树)
- 二叉树先序遍历中序遍历递归及非递归解法
- 根据二叉树的先序遍历建立二叉树
- 二叉树 先序遍历 中序遍历 后续遍历 java实现
- 通过先序遍历和中序遍历后的序列还原二叉树(实现方法)
- 已知二叉树的先序遍历(preorder)和中序遍历(inorder) 或 中序和后序(postorder),还原该二叉树
- 二叉树非递归先序遍历
- c++实现二叉树的先序遍历,中序遍历,后序遍历(递归方法)及运行实例结果
- 先序遍历、中序遍历、后序遍历(二叉树)
- 求二叉树的先序遍历
- 二叉树的遍历(1)--先序遍历,中序遍历,后序遍历
- 二叉树的先序遍历,中序遍历,后序遍历
- 先序遍历二叉树
- 二叉树先序遍历(递归算法)
- 蓝桥杯横向打印二叉树(中序+先序遍历)