113th LeetCode Weekly Contest Flip Equivalent Binary Trees

Posted 樱花落舞

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了113th LeetCode Weekly Contest Flip Equivalent Binary Trees相关的知识,希望对你有一定的参考价值。

For a binary tree T, we can define a flip operation as follows: choose any node, and swap the left and right child subtrees.

A binary tree X is flip equivalent to a binary tree Y if and only if we can make X equal to Y after some number of flip operations.

Write a function that determines whether two binary trees are flip equivalent.  The trees are given by root nodes root1 and root2.

 

Example 1:

Input: 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]
Output: true
Explanation: We flipped at nodes with values 1, 3, and 5.
技术分享图片

 

Note:

  1. Each tree will have at most 100 nodes.
  2. Each value in each tree will be a unique integer in the range [0, 99].

A、B两颗二叉树相等当且仅当rootA->data == rootB->data,且A、B的左右子树相等或者左右互换相等

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
 * };
 */
class Solution {
public:
    bool flipEquiv(TreeNode* root1, TreeNode* root2) {
        if (!root1 && !root2)
            return 1;
        if ((!root1&&root2) || (root1 && !root2))
            return 0;
        if (root1&&root2)
        {
            if (root1->val == root2->val)
            {
                if (flipEquiv(root1->left, root2->left))
                    return flipEquiv(root1->right, root2->right);
                else if (flipEquiv(root1->left, root2->right))
                    return flipEquiv(root1->right, root2->left);
            }
        }
        return 0;
    }
};

 

以上是关于113th LeetCode Weekly Contest Flip Equivalent Binary Trees的主要内容,如果未能解决你的问题,请参考以下文章

113th LeetCode Weekly Contest Largest Time for Given Digits

123th LeetCode Weekly Contest Broken Calculator

118th LeetCode Weekly Contest Pancake Sorting

108th LeetCode Weekly Contest Minimum Falling Path Sum

116th LeetCode Weekly Contest Maximum Width Ramp

128th LeetCode Weekly Contest Complement of Base 10 Integer