#Leetcode# 951. Flip Equivalent Binary Trees
https://leetcode.com/problems/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? ? Example 1: Input: root1 = [1,2,3,4,5,6,null,7,8],root2 = [1,8,7] Output: true Explanation: We flipped at nodes with values 1,and 5.
? Note:
代码: /** * 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 true; if(!root1 || !root2) return false; if(root1 -> val != root2 -> val) return false; return flipEquiv(root1 -> left,root2 -> right) && flipEquiv(root1 -> right,root2 -> left) || flipEquiv(root1 -> left,root2 -> left) && flipEquiv(root1 -> right,root2 -> right); } }; 为什么要??这个判断 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |