二叉树的反转,递归实现和非递归实现。
来源:互联网 发布:linux 红底白字 编辑:程序博客网 时间:2024/04/30 05:52
package com.alg;import java.util.Stack;/** * Created by lchli on 2016/3/5. */public class BTreeRevert { public static class Node { public Node left; public Node right; public Object data; } /** * 递归实现。 * * @param root */ public static void recusiveRevert(Node root) { if (root == null) { return; } swap(root); recusiveRevert(root.left); recusiveRevert(root.right); } /** * 非递归实现。 * * @param root */ public static void stackRevert(Node root) { if (root == null) { return; } Stack<Node> stack = new Stack<>(); stack.push(root); while (!stack.isEmpty()) { Node current = stack.pop(); swap(current); if (current.left != null) { stack.push(current.left); } if (current.right != null) { stack.push(current.right); } } } private static void swap(Node root) { Node tmp = root.left; root.left = root.right; root.right = tmp; } /** * test.前序输出。 * * @param root */ public static void preorderOutput(Node root) { if (root == null) { return; } System.out.print(root.data); preorderOutput(root.left); preorderOutput(root.right); }}
0 0
- 二叉树的反转,递归实现和非递归实现。
- 反转二叉树--递归和非递归
- 二叉树的遍历:递归和非递归实现
- 二叉树遍历的递归和非递归实现
- 二叉树创建、遍历的递归和非递归实现
- 二叉树遍历输出的递归和非递归实现
- 二叉树的深度,递归和非递归实现
- 二叉树的遍历(非递归和递归实现)
- 二叉树的前中后序遍历-递归和非递归实现
- 二叉树的递归和非递归实现 java
- 二叉树遍历的递归和非递归实现
- 二叉树的遍历实现(递归和非递归)
- 递归和非递归实现二叉树的后续遍历
- Python实现二叉树的递归和非递归遍历
- 二叉树的递归和非递归实现
- 二叉树的遍历---递归和非递归实现
- 二叉树递归和非递归访问的实现
- 链表反转的递归和非递归实现方式
- 第二周项目1-宣告“主权”
- 算两个日期相差多少天,杭电1201(18岁生日多少天)类似
- dispatch_source
- 前端面试内容汇总
- 上机题目(初级)- 键盘控制小球(Java)
- 二叉树的反转,递归实现和非递归实现。
- UIImageView(loading...)
- 【周练3016.3.5】老王修公园(dfs,水)
- python安装mysqldb
- Android Studio 各种配置(更新中)
- 对称位置排列
- jquery中remove(),detach()和empty()的区别
- z memcpy(for MSVC)小内存高速复制
- 数字信号处理复习