news 2026/2/11 8:55:19

【递归】二叉树的镜像

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【递归】二叉树的镜像


求解代码

这道题遍历二叉树的每一个节点,然后交换左右子节点就可以了。

1.前序遍历
publicTreeNodeMirror(TreeNodepRoot){if(pRoot==null){returnnull;}TreeNodetemp=pRoot.left;pRoot.left=pRoot.right;pRoot.right=temp;Mirror(pRoot.left);Mirror(pRoot.right);returnpRoot;}
2.中序遍历
publicTreeNodeMirror(TreeNodepRoot){if(pRoot==null){returnnull;}Mirror(pRoot.left);TreeNodetemp=pRoot.left;pRoot.left=pRoot.right;pRoot.right=temp;Mirror(pRoot.left);//注意上面交换过了returnpRoot;}
3.后序遍历
publicTreeNodeMirror(TreeNodepRoot){if(pRoot==null){returnnull;}TreeNodeleft=Mirror(pRoot.left);TreeNoderight=Mirror(pRoot.right);pRoot.left=right;pRoot.right=left;returnpRoot;}

注意⚠️:

这里解释一下中序遍历的第二个递归为什么是Mirror(pRoot.left);而不是Mirror(pRoot.right);?

因为执行完:

TreeNodetemp=pRoot.left;pRoot.left=pRoot.right;pRoot.right=temp;

这三行代码之后,当前节点的左右指针发生了互换,指向变成了:

pRoot.left → 原右子树(R)pRoot.right → 原左子树(L)

要处理的「原右子树 R」,现在的内存地址其实是pRoot.left

如果此时写Mirror(pRoot.right),实际处理的是「已经翻转完的原左子树 L」,这样就会造成翻转结果错误。

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

北大推出Yo‘City:让AI像建筑师一样搭建无限大的虚拟城市世界

在虚拟现实和数字孪生技术日益普及的今天,如何让计算机自动生成逼真的3D城市场景成为了一个备受关注的技术难题。最近,一项由北京大学、北航大学、卡内基梅隆大学等多所知名院校联合完成的研究为这个问题带来了全新的解决方案。这项名为"YoCity&quo…

作者头像 李华
网站建设 2026/2/8 8:45:43

新加坡国立大学DiffSeg30k:数据集提升AI图像编辑检测能力

这项由新加坡国立大学Show Lab的Hai Ci、Pei Yang、Yingxin Xuan以及通讯作者Mike Zheng Shou,联合华南理工大学的Ziheng Peng共同完成的研究发表于2025年11月,论文编号为arXiv:2511.19111v1。有兴趣深入了解的读者可以通过该编号查询完整论文内容。想象…

作者头像 李华
网站建设 2026/2/7 0:15:44

基于(BO)Bayes-LSTM-LSSVM数据分类预测 Matlab代码

目录 1、代码简介 2、代码运行结果展示 3、代码获取 1、代码简介 基于贝叶斯算法优化长短期记忆神经网络结合最小二乘向量机((BO)Bayes-LSTM-LSSVM)数据分类预测 Matlab代码 贝叶斯优化LSTM的隐藏层节点数、学习率、正则化系数! 程序已经调试好,无…

作者头像 李华
网站建设 2026/2/9 9:16:27

c++___

map

作者头像 李华
网站建设 2026/2/9 17:19:32

医疗半监督学习提升罕见病诊断准确率

📝 博客主页:jaxzheng的CSDN主页 半监督学习:破解罕见病诊断困局的智能钥匙目录半监督学习:破解罕见病诊断困局的智能钥匙 引言:罕见病诊断的“数据荒漠”与AI破局点 一、问题核心:为何半监督学习是罕见病诊…

作者头像 李华