大数据中树的翻转树算法怎么实现
发表于:2025-01-24 作者:千家信息网编辑
千家信息网最后更新 2025年01月24日,这篇文章主要为大家展示了"大数据中树的翻转树算法怎么实现",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"大数据中树的翻转树算法怎么实现"这篇文章吧。算法:个
千家信息网最后更新 2025年01月24日大数据中树的翻转树算法怎么实现
这篇文章主要为大家展示了"大数据中树的翻转树算法怎么实现",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"大数据中树的翻转树算法怎么实现"这篇文章吧。
算法:
个人觉得这种类型题目的根本在于对题目的理解,所以理解翻转二叉树的定义就很重要。
我们先看下什么是翻转二叉树:翻转的意思就是根节点不变,左右子树交换位置,当然这里的左右子树也得是翻转之后的二叉树。
解法:
1.空节点和单个节点的二叉树是不需要翻转的。2.1)两个以上的节点的二叉树,首先翻转各自的左右子树, 2)然后与根节点的左右子树交换位置。
题目1:
https://leetcode-cn.com/problems/invert-binary-tree/
代码实现:
/** * Definition for a binary tree node. * type TreeNode struct { * Val int * Left *TreeNode * Right *TreeNode * } */func invertTree(root *TreeNode) *TreeNode { // 1.根节点是nil直接返回 if root == nil { return root } // 2. 左右节点先翻转子树,再翻转孩子 l := invertTree(root.Left) r := invertTree(root.Right) root.Left,root.Right = r,l return root }
执行结果:
题目2:
解法:
是题目1的变形题目:二叉树部分翻转我们观察翻转二叉树会发现,翻转后的节点他们所处的层次没有变化,只是左右交换了位置,基于这个原因,我们将本题目拆分成。1.两棵树的左子树与右子树都相同。2.两棵树的左子树==右子树,并且右子树==左子树。3.两棵树都为nil的话,是相同的。4.两棵树一棵为nil,则不相同。5.两棵树的根节点数值不相同则整棵树就不相同。
https://leetcode-cn.com/problems/flip-equivalent-binary-trees/
代码实现:
/** * Definition for a binary tree node. * type TreeNode struct { * Val int * Left *TreeNode * Right *TreeNode * } */func flipEquiv(root1 *TreeNode, root2 *TreeNode) bool { // 1. root1,root2 都为nil的情况 if root1 == root2 { return true } // 2. root1,root2有一个为nil,另一个不为nil 或者 root1与root2不相同 if root1 == nil || root2 == nil || root1.Val != root2.Val { return false } // 3. root1,root2都相同,进一步检查他们的孩子,无非就是下面两种 return (flipEquiv(root1.Left,root2.Left) && flipEquiv(root1.Right,root2.Right)) || (flipEquiv(root1.Right,root2.Left)&& flipEquiv(root1.Left,root2.Right))}
执行结果:
以上是"大数据中树的翻转树算法怎么实现"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
子树
节点
相同
题目
算法
数据
位置
内容
篇文章
代码
孩子
就是
结果
解法
学习
帮助
重要
两个
个人
单个
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
企业网络安全最大的威胁
必游网络技术有限公司
c 软件开发学什么软件
收银系统数据库实例
大话西游2海市蜃楼服务器
数据库找出同一个班的学生
潮汕企业软件开发费用
泛滥的数据库
软件开发项目方案书范本
无线网络安全要求
ubuntu系统安装数据库
数据库合并表数据相加
服务器的环境
语音对讲软件开发的不同之处
网络安全宣传图片ppt
山西管理软件开发
fss 服务器
数据库登陆时提示18456
数据库建模工具软件
郑州软件开发外包平台
无法连接到服务器怎样连接网络
db2数据库备份文件格式
别的手机无法连接华为服务器
汽车行业软件开发架构
泰山服务器主频
浦东新区工商软件开发信息推荐
湖北电脑软件开发定制
电大数据库应用课程设计
网络安全漏洞扫描工作方案
数据库防火墙系统