复制二叉树
来源:互联网 发布:linux怎么改ip 编辑:程序博客网 时间:2024/05/06 13:32
/**
* 深度复制一个二叉树。
给定一个二叉树,返回一个他的 克隆品 。
*/
package leetcode;import java.util.Scanner;public class n9cloneTree { public static void main(String[] args) { // TODO Auto-generated method stub TreeNode root=createTree(); PreTraverse(root); TreeNode clone=cloneTree(root);//克隆树 System.out.println("克隆树:"); PreTraverse(clone); } public static TreeNode cloneTree(TreeNode root){ TreeNode node=null; if(root==null) return null; node=new TreeNode(root.val); node.left=cloneTree(root.left); node.right=cloneTree(root.right); return node; } //用先序递归建树 public static TreeNode createTree(){ Scanner input=new Scanner(System.in); String str=input.nextLine();// 输入一个数字 TreeNode node=null; if(isNum(str)){//判断是否是数字,则用这个数字为根创建一个结点 node=new TreeNode(Integer.valueOf(str).intValue()); node.left=createTree(); node.right=createTree(); return node; } return node; } //先序遍历 public static void PreTraverse(TreeNode root){ if(root!=null){ System.out.printf("%4d",root.val); PreTraverse(root.left); PreTraverse(root.right); }else{ System.out.printf("%2c",'#'); } } public static boolean isNum(String str){ return str.matches("^[-+]?(([0-9]+)([.]([0-9]+))?([.]([0-9]+))?)$"); }}
0 0
- 二叉树的复制
- 二叉树的复制
- 复制二叉树
- 复制二叉树
- 二叉树5(复制二叉树)
- 复制二叉树(二叉树)
- 二叉树复制和左右子树互换
- 复制二叉树(非递归实现)
- 二叉树的创建、复制、遍历
- 二叉树复制和左右子树互换
- 二叉树的递归遍历与复制
- 二叉链表存储的二叉树的复制
- 二叉树采用二叉链表存储,复制二叉树的算法(树的应用)
- 二叉树的创建与遍历&二叉树的高度&二叉树每层结点个数&复制二叉树
- 数据结构复习(层次遍历法复制二叉树)
- C++数据结构--二叉树的复制和删除
- 使用栈非递归实现复制二叉树
- 编写复制一颗二叉树的非递归算法
- linux无法安装mysql-Invalid GPG Key from file:/etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
- iOS 转跳到 AppStore 为应用评分
- Spring 学习笔记1——开始
- 设备驱动中的regmap
- 滑动切换时间列表
- 复制二叉树
- Jquery学习入门
- Eclipse中使用SVN教程
- Java注解基础
- 九度oj:题目1049:字符串去特定字符
- 《Head First Python》第七章 界面生成模板yate
- mysql二进制日志
- TCP的流量控制和拥塞控制机制
- [Android]当Activity启动模式为singleTask时的生命周期