leetcode951. Flip Equivalent Binary Trees
题目链接
题目:给出两棵树,问能不能通过翻转(互换)左右孩子节点而互相转化
思路:递归进行比较,第一棵树的左孩子和第二棵数的左孩子,第一棵树的右孩子和第二棵数的右孩子 或者 第一棵树的左孩子和第二棵数的右孩子,第一棵树的右孩子和第二棵数的左孩子。
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
class Solution {
public boolean flipEquiv(TreeNode root1, TreeNode root2) {
if(root1 == null || root2 == null){
return root1 == root2;
}
if(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);
}
}