मान लीजिए हमारे पास दो बाइनरी ट्री हैं, हमें यह जांचना है कि क्या वे अपनी संरचना और मानों के संदर्भ में बिल्कुल समान हैं या नहीं। हम उन्हें ट्विन ट्री कह सकते हैं।
तो, यदि इनपुट इस तरह है

तो पहले जोड़े के लिए आउटपुट True होगा, दूसरे जोड़े के लिए False और तीसरे जोड़े के लिए False क्योंकि दूसरे और तीसरे आइटम अलग हैं और संरचनाएं क्रमशः अलग हैं।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे:
- solve() मेथड परिभाषित करें, यह दो रूट लेगा
- यदि root0 null है और root1 null है, तो True लौटाएं
- यदि root0 null है या root1 null है, तो False लौटाएं
- यदि root0 का मान root1 के मान के समान नहीं है, तो False लौटाएं
- True लौटाएं जब solve(root0 के बाएं, root1 के बाएं) और solve(root0 के दाएं, root1 के दाएं) True हों, अन्यथा False
बेहतर समझ के लिए निम्नलिखित कार्यान्वयन देखें:
उदाहरण
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)
root1.left = TreeNode(5)
root1.right = TreeNode(15)
root1.left.left = TreeNode(3)
root1.left.right = TreeNode(8)
root2 = TreeNode(10)
root2.left = TreeNode(5)
root2.right = TreeNode(15)
root2.left.left = TreeNode(3)
root2.left.right = TreeNode(8)
print(ob.solve(root1, root2))
इनपुट
root1 = TreeNode(10)
root1.left = TreeNode(5)
root1.right = TreeNode(15)
root1.left.left = TreeNode(3)
root1.left.right = TreeNode(8)
root2 = TreeNode(10)
root2.left = TreeNode(5)
root2.right = TreeNode(15)
root2.left.left = TreeNode(3)
root2.left.right = TreeNode(8)
आउटपुट
True