দুটি বাইনারি ট্রি দেওয়া থাকলে, তাদের কন্ট্রাক্ট (স্ট্রাকচার) এবং নোড মান দুটোই সমান কিনা যাচাই করতে হবে।
রিকার্সিভ সমাধান
- দুটোই
None→True - একটি
None, অন্যটি নয় →False - নোড মান ভিন্ন →
False - বাম সাবট্রি এবং ডান সাবট্রি রিকার্সিভলি চেক →
solve(left0, left1) and solve(right0, right1)
পাইথন কোড
class TreeNode:
def __init__(self, val, left=None, right=None):
self.val = val
self.left = left
self.right = right
class Solution:
def solve(self, root0, root1):
if not root0 and not root1:
return True
if not root0 or not root1:
return False
if root0.val != root1.val:
return False
return (self.solve(root0.left, root1.left) and
self.solve(root0.right, root1.right))
# টেস্ট: দুটি সমান ট্রি
ob = Solution()
root1 = TreeNode(10, TreeNode(5, TreeNode(3), TreeNode(8)), TreeNode(15))
root2 = TreeNode(10, TreeNode(5, TreeNode(3), TreeNode(8)), TreeNode(15))
print(ob.solve(root1, root2)) # True
টাইম কমপ্লেক্সিটি: O(min(n, m)), স্পেস: O(h)। এটি ট্রি ইকুয়ালিটি চেকের স্ট্যান্ডার্ড রিকার্সিভ পদ্ধতি।