首页 > 其他分享 >【DFS】LeetCode 951. 翻转等价二叉树

【DFS】LeetCode 951. 翻转等价二叉树

时间:2023-01-20 15:24:45浏览次数:68  
标签:flipEquiv right 951 DFS 二叉树 null root1 root2

题目链接

951. 翻转等价二叉树

思路

如果二叉树 root1root2 根节点值相等,那么只需要检查他们的孩子是不是相等就可以了。

  • 如果 root1 或者 root2null,那么只有在他们都为 null 的情况下这两个二叉树才等价。
  • 如果 root1root2 的值不相等,那这两个二叉树的一定不等价。
  • 如果以上条件都不满足,也就是当 root1root2 的值相等的情况下,需要继续判断 root1 的孩子节点是不是跟 root2 的孩子节点相当。因为可以做翻转操作,所以这里有两种情况需要去判断。

代码

class Solution {
    public boolean flipEquiv(TreeNode root1, TreeNode root2) {
        if(root1 == root2){
            return true;
        }
        if(root1 == null || root2 == null || root1.val != root2.val){
            return false;
        }

        return (flipEquiv(root1.left, root2.left) && flipEquiv(root1.right, root2.right) ||
                flipEquiv(root1.left, root2.right) && flipEquiv(root1.right, root2.left));
    }
}

标签:flipEquiv,right,951,DFS,二叉树,null,root1,root2
From: https://www.cnblogs.com/shixuanliu/p/17062770.html

相关文章