951. 翻转等价二叉树
Posted Debroon
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了951. 翻转等价二叉树相关的知识,希望对你有一定的参考价值。
951. 翻转等价二叉树
题目
传送门:https://leetcode.cn/problems/flip-equivalent-binary-trees/
算法设计:深度优先搜索
二叉树原问题 = 根节点 + 左右子树问题
俩棵二叉树是否相同 = 俩棵树的根节点相同 && (俩个根节点的左右子树是否相同 || 翻转后, 俩个根节点的左右子树是否相同)。
对子树把翻转和不翻转两种情况全都穷举一遍,只要有一种情况能够匹配,就说明整棵树是翻转相同的。
class Solution
public:
bool flipEquiv(TreeNode* r1, TreeNode* r2)
if (r1 == NULL || r2 == NULL) return r1 == r2; // 俩个节点都为空,则true;只有一个空,则false
return r1->val == r2->val && // 节点不同则 false
(flipEquiv(r1->left, r2->left) && flipEquiv(r1->right, r2->right) || // 俩个根节点的左右子树是否相同
flipEquiv(r1->left, r2->right) && flipEquiv(r1->right, r2->left)); // 翻转后,俩个根节点的左右子树是否相同
;
以上是关于951. 翻转等价二叉树的主要内容,如果未能解决你的问题,请参考以下文章
算法leetcode|剑指 Offer 27. 二叉树的镜像|226. 翻转二叉树(rust很强)
算法leetcode|剑指 Offer 27. 二叉树的镜像|226. 翻转二叉树(rust很强)