Leetcode951. Flip Equivalent Binary Trees翻转等价二叉树
2024-10-07 23:34:14
我们可以为二叉树 T 定义一个翻转操作,如下所示:选择任意节点,然后交换它的左子树和右子树。
只要经过一定次数的翻转操作后,能使 X 等于 Y,我们就称二叉树 X 翻转等价于二叉树 Y。
编写一个判断两个二叉树是否是翻转等价的函数。这些树由根节点 root1 和 root2 给出。
示例:
输入:root1 = [1,2,3,4,5,6,null,null,null,7,8], root2 = [1,3,2,null,6,4,5,null,null,null,null,8,7] 输出:true 解释:We flipped at nodes with values 1, 3, and 5.
提示:
- 每棵树最多有 100 个节点。
- 每棵树中的每个值都是唯一的、在 [0, 99] 范围内的整数。
递归求解,交换参数节点就相当于交换了。
class Solution {
public:
bool flipEquiv(TreeNode* root1, TreeNode* root2)
{
if(root1 == NULL && root2 == NULL)
return true;
else if(root1 == NULL && root2 != NULL || root1 != NULL && root2 == NULL)
return false;
else if(root1 ->val == root2 ->val)
{
return
(flipEquiv(root1 ->left, root2 ->left) && flipEquiv(root1 ->right, root2 ->right)) ||
(flipEquiv(root1 ->right, root2 ->left) && flipEquiv(root1 ->left, root2 ->right));
}
else
{
return false;
}
}
};
最新文章
- thinkphp vendor
- Redis学习笔记~分布式的Pub/Sub模式
- Visual Studio 2013启用AnkSVN
- XidianOJ 1120 Gold of Orz Pandas
- 使用radioGroup的时候,每个radioButton的状态选择器要使用 state_checked=";";属性,不能使用selected
- nova分析(10)—— nova-rootwrap
- C#实现程序自重启
- C# 获取字符串中的数字
- jq事件绑定
- 西门子 PLC SFC14/15 80B1故障
- springboot秒杀课程学习整理1-3
- TCP/IP 详解
- 2018 ACM 网络选拔赛 沈阳赛区
- 安卓程序代写 网上程序代写[原]Android应用的自动更新模块
- 接口自动化(unittest)
- byte[]->;new String(byte[]) ->; getByte()引发的不一致问题
- php Call to undefined function imagettftext()问题解决
- PyCharm中的Console自动换行
- c++课的圆周面积
- 安全测试===CSRF攻击简介