news 2026/9/15 10:05:35

【层序遍历】序列化二叉树

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【层序遍历】序列化二叉树


求解代码

StringSerialize(TreeNoderoot){StringBuildersb=newStringBuilder();if(root!=null){Queue<TreeNode>queue=newLinkedList<>();queue.add(root);sb.append(root.val+",");// 先存入根节点值while(!queue.isEmpty()){root=queue.poll();// 取出队首的待处理节点// 严格先处理左孩子:有值存值+逗号,无值存# +逗号if(root.left!=null){sb.append(root.left.val+",");queue.add(root.left);}else{sb.append("#,");}// 严格后处理右孩子:有值存值+逗号,无值存# +逗号if(root.right!=null){sb.append(root.right.val+",");queue.add(root.right);}else{sb.append("#,");}}}returnsb.toString();}TreeNodeDeserialize(Stringstr){if(str.equals("")){returnnull;}String[]nodes=str.split(",");// 按分隔符拆分出所有节点内容intindex=0;TreeNoderoot=generate(nodes[index++]);// 第一个元素是根节点Queue<TreeNode>queue=newLinkedList<>();queue.add(root);while(!queue.isEmpty()){TreeNodecur=queue.poll();// 取出待分配子节点的父节点cur.left=generate(nodes[index++]);// 严格先分配左孩子cur.right=generate(nodes[index++]);// 严格后分配右孩子// 只有非空节点才有子节点,需要入队等待分配子节点if(cur.left!=null)queue.add(cur.left);if(cur.right!=null)queue.add(cur.right);}returnroot;}TreeNodegenerate(Stringval){returnval.equals("#")?null:newTreeNode(Integer.parseInt(val));}

小贴士

Integer.parseInt ()Integer.valueOf ()
这俩都是 Java 中把「数字格式的字符串」转为整数 的核心静态方法,最核心的区别只有一个:
Integer.parseInt(String s)→ 返回基本数据类型int
Integer.valueOf(String s)→ 返回包装类对象Integer

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/13 10:27:32

【前序+中序】重建二叉树

求解代码 public TreeNode reConstructBinaryTree (int[] preOrder, int[] vinOrder) {int pre_len preOrder.length;int vin_len vinOrder.length;if (pre_len 0 || vin_len 0) {return null;}TreeNode root new TreeNode(preOrder[0]);for (int i 0; i < vinOrder.l…

作者头像 李华
网站建设 2026/9/9 12:01:42

用两个栈实现队列

求解代码 Stack<Integer> stack1 new Stack<Integer>();Stack<Integer> stack2 new Stack<Integer>();public void push(int node) {stack1.push(node);}public int pop() {if(stack2.isEmpty()){while (!stack1.isEmpty()) {stack2.push(stack1.po…

作者头像 李华
网站建设 2026/9/11 2:41:49

ComfyUI硬件性能优化全攻略:如何在有限资源下获得最佳表现

ComfyUI硬件性能优化全攻略&#xff1a;如何在有限资源下获得最佳表现 【免费下载链接】ComfyUI 最强大且模块化的具有图形/节点界面的稳定扩散GUI。 项目地址: https://gitcode.com/GitHub_Trending/co/ComfyUI 作为一名AI图像生成爱好者&#xff0c;你是否曾遇到过这样…

作者头像 李华
网站建设 2026/9/9 3:27:52

EPOCH完全指南:从零掌握等离子体粒子模拟技术

EPOCH完全指南&#xff1a;从零掌握等离子体粒子模拟技术 【免费下载链接】epoch Particle-in-cell code for plasma physics simulations 项目地址: https://gitcode.com/gh_mirrors/epoc/epoch EPOCH是一款强大的开源粒子-in-cell&#xff08;PIC&#xff09;代码&…

作者头像 李华
网站建设 2026/9/11 23:15:34

5分钟部署Youtu-2B:腾讯轻量级LLM智能对话服务一键启动

5分钟部署Youtu-2B&#xff1a;腾讯轻量级LLM智能对话服务一键启动 1. 引言&#xff1a;为什么需要轻量级大模型&#xff1f; 随着大语言模型&#xff08;LLM&#xff09;在自然语言处理领域的广泛应用&#xff0c;企业与开发者对模型的推理效率、部署成本和响应速度提出了更…

作者头像 李华
网站建设 2026/9/9 11:38:24

TwitchDropsMiner终极指南:免费快速获取游戏掉落奖励

TwitchDropsMiner终极指南&#xff1a;免费快速获取游戏掉落奖励 【免费下载链接】TwitchDropsMiner An app that allows you to AFK mine timed Twitch drops, with automatic drop claiming and channel switching. 项目地址: https://gitcode.com/GitHub_Trending/tw/Twit…

作者头像 李华