题解 | #序列化二叉树#

序列化二叉树

https://www.nowcoder.com/practice/cf7e25aa97c04cc1a68c8f040e71fb84

import java.util.*;
import java.lang.*;
/*
public class TreeNode {
    int val = 0;
    TreeNode left = null;
    TreeNode right = null;

    public TreeNode(int val) {
        this.val = val;

    }

}
*/
public class Solution {
    String Serialize(TreeNode root) {
        StringBuilder builder = new StringBuilder();
        getString(root, builder);
        return builder.toString();
    }

    private void getString(TreeNode root, StringBuilder builder) {
        if (root == null) {
            builder.append(",");
        } else {
            builder.append(root.val).append(",");
            getString(root.left, builder);
            getString(root.right, builder);
        }
    }


    TreeNode Deserialize(String str) {
        String[] strArray = str.split( ",");
        int[] ptr = new int[] {0};
        return dfs(strArray, ptr);
    }

    private TreeNode dfs(String[] strArray, int[] ptr) {
        if (ptr[0] >= strArray.length || strArray[ptr[0]].length() == 0) {
            ptr[0]++;
            return null;
        }
        TreeNode node = new TreeNode(Integer.parseInt(strArray[ptr[0]++]));
        node.left = dfs(strArray, ptr);
        node.right = dfs(strArray, ptr);
        return node;
    }
}

全部评论

相关推荐

axiom15:校友,我感觉你这个简历去华子暑期实习随便去了
点赞 评论 收藏
分享
02-14 12:40
门头沟学院 Java
程序员花海:1.面试要求必须Java笔试不一定 2.难度对等秋招 远超于日常实习是因为同一批次且转正很多 竞争压力大 3.第一个加点指标,上线了就把接口性能加上去 使用本地缓存这个不算亮点 只是技术选型,要把为什么采用这个和背后的思考写出来而不是单纯堆叠技术没意义 4.八股要一直看 很容易忘记 5.拼团交易这个老问题 堆积技术 另外建议你把奖项合并到教育背景 没必要拆出来放最后
我的简历长这样
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务