news 2026/4/22 14:24:16

树、森林——树、森林与二叉树的转换(二叉树转换为森林)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
树、森林——树、森林与二叉树的转换(二叉树转换为森林)

一、判断能不能转森林
二叉树根结点有右孩子 → 原是森林
二叉树根结点无右孩子 → 原只是一棵树


二、二叉树还原森林
拆分右链从根结点开始,沿着右孩子一路拆分每一个右分支断开,独立成一棵二叉树根
每一段二叉树,单独还原成普通树规则逆用:左孩子不变,右兄弟变回兄弟
父子连线还原
左孩子:还是孩子
右孩子:变回原来兄弟结点
整理所有树,组合就是森林


三、转换口诀
根右拆开成多棵,右变兄弟左父子


四、遍历对应不变
森林先序遍历 = 二叉树先序
森林中序遍历 = 二叉树中序


五、树 ↔ 二叉树 VS 森林 ↔ 二叉树 对比
一棵树 → 二叉树:根无右子树
森林 → 二叉树:根有右子树
二叉树无根右孩子 → 还原一棵树
二叉树有根右孩子 → 还原多棵树(森林)


六、一句话总结
顺着根的右链不断切断,每一段各自还原成树,拼在一起就是森林。

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

flask、flask-restful、fastAPI

flask-Restful 不推荐 from flask_restful import Resource, reqparseparser reqparse.RequestParser() parser.add_argument(username, typestr, requiredTrue, helpUsername required) parser.add_argument(age, typeint, requiredTrue, helpAge required)class Register(R…

作者头像 李华
网站建设 2026/4/22 14:18:23

香蕉派BPI-WiFi 6路由器:30美元的高性价比开源方案

1. 香蕉派BPI-WiFi 6路由器深度解析作为一名长期关注开源硬件和网络设备的开发者,当我第一次看到香蕉派(Banana Pi)推出这款仅售30美元的WiFi 6路由器时,立刻意识到这可能是一款会改变游戏规则的产品。这款型号为BPI-WiFi 6的路由…

作者头像 李华
网站建设 2026/4/22 14:16:51

移动Git管理终极指南:如何在Android上随时随地管理代码仓库

移动Git管理终极指南:如何在Android上随时随地管理代码仓库 【免费下载链接】MGit A Git client for Android. 项目地址: https://gitcode.com/gh_mirrors/mg/MGit 还在为出差时无法提交代码而烦恼吗?还在为紧急修复bug却没有电脑而焦虑吗&#x…

作者头像 李华
网站建设 2026/4/22 14:15:41

Docker for Automotive配置白皮书(2024Q3最新版):覆盖英伟达Orin、高通SA8295、地平线J5三大平台的6类SoC差异化配置矩阵与启动耗时优化对照表

第一章:Docker for Automotive配置白皮书概览与演进脉络 Docker for Automotive 是面向智能网联汽车软件开发、验证与部署的一套容器化实践框架,其核心目标是在异构车载硬件(如基于 ARM64 的域控制器)、实时操作系统(如…

作者头像 李华