威海临港区建设局网站,做网站 十万,手机网站建设软件有哪些方面,新闻 最新消息文章目录1. 题目2. 递归解题1. 题目
我们可以为二叉树 T 定义一个翻转操作#xff0c;如下所示#xff1a;选择任意节点#xff0c;然后交换它的左子树和右子树。
只要经过一定次数的翻转操作后#xff0c;能使 X 等于 Y#xff0c;我们就称二叉树 X 翻转等价于二叉树 Y…
文章目录1. 题目2. 递归解题1. 题目
我们可以为二叉树 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] 范围内的整数。来源力扣LeetCode 链接https://leetcode-cn.com/problems/flip-equivalent-binary-trees 著作权归领扣网络所有。商业转载请联系官方授权非商业转载请注明出处。
2. 递归解题
class Solution {
public:bool flipEquiv(TreeNode* root1, TreeNode* root2) {if(!root1 !root2)return true;else if((!root1 root2) || (root1 !root2) || (root1 root2 root1-val ! root2-val))return false;else//两个都存在且相等{return (flipEquiv(root1-left,root2-left) flipEquiv(root1-right,root2-right))|| (flipEquiv(root1-left,root2-right) flipEquiv(root1-right,root2-left));}}
};