【基础算法】二叉树的先序序列化与反序列化

本文介绍了如何实现二叉树的先序序列化和反序列化。在序列化过程中,使用空节点的特殊标记 '#' 追加到字符串末尾;在反序列化时,通过 '!' 分割字符串并根据先序遍历重建二叉树。此外,还提及了按层遍历的序列化方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


二叉树序列化:

1,假设序列化结果为str,初始时str为空

2,先序遍历遇到空节点,在str末尾加上#!

3,如果遇到不为空的节点,假设节点为3,在str末尾加上3!

二叉树反序列化:

1,以!为分隔符

2,按先序遍历组成二叉树

package test;

import java.util.LinkedList;
import java.util.Queue;

public class Serialization {
    private static class BinaryNode{
        int val;
        BinaryNode left;
        BinaryNode right;

        public BinaryNode(){}
        public BinaryNode(int val){
            this.val = val;
        }
    }
//    先序方式序列化
    public static String binaryToString(BinaryNode head){
        StringBuilder stringBuilder = new StringBuilder();
        if(head == n
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值