面试:递归和非递归方式实现先序、中序、后序遍历代码
来源:互联网 发布:万国数据官网 编辑:程序博客网 时间:2024/06/05 02:30
public class TreeTraversal { public void preOrderRecur(Node head) { if (head == null) { return; } System.out.println(head.value + ""); preOrderRecur(head.left); preOrderRecur(head.right); } public void inOrderRecur(Node head) { if (head == null) { return; } inOrderRecur(head.left); System.out.println(head.value + " "); inOrderRecur(head.right); } public void posOrderRecur(Node head) { if (head == null) { return; } posOrderRecur(head.left); posOrderRecur(head.right); System.out.println(head.value + " "); } public void preOrderUnRecur(Node head) { System.out.println("pre-order"); if (head != null) { Stack<Node> stack = new Stack<>(); stack.add(head); while (!stack.isEmpty()) { head = stack.pop(); System.out.println(head.value + " "); if (head.right != null) { stack.push(head.right); } if (head.left != null) { stack.push(head.left); } } } } public void inOrderUnRecur(Node head) { System.out.println("in-order:"); if (head != null) { Stack<Node> stack = new Stack<>(); while (!stack.isEmpty() || head != null) { if (head != null) { stack.push(head); head = head.left; } else { head = stack.pop(); System.out.println(head.value + " "); head = head.right; } } } } public void posOrderUnRecur1(Node head) { System.out.println("pre-order:"); if (head != null) { Stack<Node> s1 = new Stack<>(); Stack<Node> s2 = new Stack<>(); s1.push(head); while (!s1.isEmpty()) { head = s1.pop(); s2.push(head); if (head.left != null) { s1.push(head.left); } if (head.right != null) { s1.push(head.right); } } while (!s2.isEmpty()) { System.out.println(s2.pop().value + " "); } } } /** * 第二种方法 * @param h */ public void posOrderUnRecur2(Node h) { System.out.println("pos-order: "); if (h != null) { Stack<Node> stack = new Stack<>(); stack.push(h); Node c = null; while (!stack.isEmpty()) { c = stack.peek(); } } } class Node { public int value; public Node left; public Node right; public Node(int data) { this.value = data; } }}
0 0
- 面试:递归和非递归方式实现先序、中序、后序遍历代码
- 分别用递归和非递归方式实现二叉树的先序、中序和后序遍历
- 递归和非递归的方式实现二叉树的先序、中序和后序遍历
- 二叉树的先序、中序和后序遍历,递归与非递归方式实现。
- 二叉树的先序、中序、后序遍历的递归和非递归实现
- 算法:二叉树的先序遍历、中序遍历、后序遍历(递归及非递归方式)的java代码实现
- 二叉树遍历的非递归算法(先序、中序、后序)代码实现
- 二叉树的先序、中序、后序递归遍历和非递归遍历
- 用递归和非递归方式实现二叉树先序、中序和后序遍历
- 二叉树的递归 非递归 先序 中序 后序及层次遍历代码实现
- 2015-03-15---二叉树递归(非递归)实现先序、中序、后序遍历(附代码)
- 二叉树的建树、遍历(先序、中序、后序、层次)(递归和非递归)--Java实现
- 二叉树遍历(先序、中序、后序、深度、广度)递归和非递归实现
- 二叉树的先序遍历、中序遍历以及后序遍历(递归以及非递归方式)
- 二叉树的创建(先序创建的)及先序遍历 中序遍历 后序遍历的递归和非递归实现
- 二叉树的创建和先序,中序,后序,递归,非递归遍历
- 二叉树非递归和递归遍历(先序,中序,后序)
- 二叉树2:层次遍历方式及先序、中序、后序(递归与非递归)遍历方式
- leetcode:数组之Rotate Image
- 【NOIP2012普及组】摆花 (递推)
- 2-The Transport Layer: TCP, UDP, and SCTP
- 汇编学习笔记(二)-- 配置编辑器
- getWindow().setBackgroundDrawable(null);对UI优化的测试
- 面试:递归和非递归方式实现先序、中序、后序遍历代码
- TCP/IP五层协议图
- HTML 5 placeholder 改变字体颜色
- PCA的数学原理
- 扩展实体
- 容易忽视的问题之:surfaceview绘制兼容性(android 4.3 libskia.so libui.so crash)
- Apache部署
- 使用Appium自带的输入法的代码
- 使用core文件调试程序