951. Flip Equivalent Binary Trees
Solved
Medium
Topics
Companies
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.
Given the roots of two binary trees root1 and root2, return true if the two trees are flip equivalent or false otherwise.
Example 1:
Flipped Trees Diagram
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.
Example 2:
Input: root1 = [], root2 = []
Output: true
Example 3:
Input: root1 = [], root2 = [1]
Output: false
Constraints:
The number of nodes in each tree is in the range [0, 100].
Each tree will have unique node values in the range [0, 99].
Solved
Medium
Topics
Companies
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.
Given the roots of two binary trees root1 and root2, return true if the two trees are flip equivalent or false otherwise.
Example 1:
Flipped Trees Diagram
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.
Example 2:
Input: root1 = [], root2 = []
Output: true
Example 3:
Input: root1 = [], root2 = [1]
Output: false
Constraints:
The number of nodes in each tree is in the range [0, 100].
Each tree will have unique node values in the range [0, 99].
Class Solution {
Public Boolean Flipequiv(Treenode Root1, Treenode Root2) {
Return Dfs(Root1, Root2);
}
Private Boolean Dfs(Treenode Root1, Treenode Root2) {
If (Root1 == Root2 || (Root1 == Null && Root2 == Null)) {
Return True;
}
If (Root1 == Null Root2 == Null Root1.Val != Root2.Val) {
Return False;
}
Return (Dfs(Root1.Left, Root2.Left) && Dfs(Root1.Right, Root2.Right))
|| (Dfs(Root1.Left, Root2.Right) && Dfs(Root1.Right, Root2.Left));
}
}
Public Boolean Flipequiv(Treenode Root1, Treenode Root2) {
Return Dfs(Root1, Root2);
}
Private Boolean Dfs(Treenode Root1, Treenode Root2) {
If (Root1 == Root2 || (Root1 == Null && Root2 == Null)) {
Return True;
}
If (Root1 == Null
Return False;
}
Return (Dfs(Root1.Left, Root2.Left) && Dfs(Root1.Right, Root2.Right))
|| (Dfs(Root1.Left, Root2.Right) && Dfs(Root1.Right, Root2.Left));
}
}
Please open Telegram to view this post
VIEW IN TELEGRAM
Leetcode contest
daily tasks
Do tasks ๐ฎ ๐ค
Please open Telegram to view this post
VIEW IN TELEGRAM
๐ฅ2
Please open Telegram to view this post
VIEW IN TELEGRAM
In the end of the week we will. Start send solutions of problems of contest so joining us
โค2๐1
Leetcode contest pinned ยซhttps://github.com/professorDeveloper/Algorithms-Java Java leetcode 800 begin tasks :Enjoy it ๐ซ ยป