博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
二叉树的序列化
阅读量:4090 次
发布时间:2019-05-25

本文共 883 字,大约阅读时间需要 2 分钟。

题目描述

二叉树被记录成文件的过程叫做二叉树的序列化。序列化的方法有很多,这里我们采用括号序列的方法将其序列化,所谓括号序列指的是对于一个节点生成一个括号,括号内是其子树的括号序列,其中左儿子(若存在)的括号在前,右儿子(若存在)的括号在后。对于给定的树,请设计高效的算法,将其序列化。

给定一个树的根节点指针root,请返回一个字符串,代表其序列化后的括号序列。

思路:

递归方式先序遍历二叉树,遇到中节点打印一个‘(’,然后递归遍历左右子树,子树遍历完毕打印一个‘)’。

import java.util.*;/*public class TreeNode {    int val = 0;    TreeNode left = null;    TreeNode right = null;    public TreeNode(int val) {        this.val = val;    }}*/public class TreeToSequence {   public static String f(TreeNode root,StringBuilder sb){			sb.append("(");	    	if(root.left!=null){	    		TreeNode le = root.left;	    		f(le,sb);	    	}	    	if(root.right!=null){	    		TreeNode ri = root.right;	    		f(ri,sb);	    	}	    	sb.append(")");	    	return sb.toString();		}	    public String toSequence(TreeNode root) {	        // write code here	    	StringBuilder sb = new StringBuilder();	    	return f(root,sb);	    		    }}

转载地址:http://lfdii.baihongyu.com/

你可能感兴趣的文章
Java编程基础:static的用法
查看>>
Java编程基础:抽象类和接口
查看>>
Java编程基础:异常处理
查看>>
Java编程基础:了解面向对象
查看>>
新一代Java模板引擎Thymeleaf
查看>>
Spring MVC中使用Thymeleaf模板引擎
查看>>
Spring Boot构建简单的微博应用
查看>>
Spring处理表单提交
查看>>
Spring MVC异常处理
查看>>
Leetcode 1180. Count Substrings with Only One Distinct Letter [Python]
查看>>
PHP 7 的五大新特性
查看>>
php使用 memcache 来存储 session
查看>>
php实现socket(转)
查看>>
PHP底层的运行机制与原理
查看>>
php 几个比较实用的函数
查看>>
深入了解php底层机制
查看>>
PHP中的stdClass 【转】
查看>>
XHProf-php轻量级的性能分析工具
查看>>
PHP7新特性 What will be in PHP 7/PHPNG
查看>>
比较strtr, str_replace和preg_replace三个函数的效率
查看>>