Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

Python में दो ट्री उनकी संरचना और मानों के आधार पर बिल्कुल समान हैं या नहीं, इसकी जांच करने का प्रोग्राम


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

तो, यदि इनपुट इस तरह है

Python में दो ट्री उनकी संरचना और मानों के आधार पर बिल्कुल समान हैं या नहीं, इसकी जांच करने का प्रोग्राम

तो पहले जोड़े के लिए आउटपुट 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
  1. पायथन में जांचें कि दो ट्री के सभी लेवल एनाग्राम हैं या नहीं पायथन में जांचें कि दो ट्री के सभी लेवल एनाग्राम हैं या नहीं

    मान लीजिए, हमें दो बाइनरी ट्री प्रदान किए गए हैं। हमें यह जांचना है कि एक बाइनरी ट्री का प्रत्येक लेवल दूसरे बाइनरी ट्री के उसी लेवल का एनाग्राम है या नहीं। यदि यह एनाग्राम है तो हम True वापस करते हैं, अन्यथा False वापस करते हैं। इसलिए, यदि इनपुट इस तरह है: तो आउटपुट True होगा। इसे हल करने के लिए

  1. दो पत्तियों के लीफ अनुक्रम समान हैं या नहीं जांचने का पायथन प्रोग्राम दो पत्तियों के लीफ अनुक्रम समान हैं या नहीं जांचने का पायथन प्रोग्राम

    मान लीजिए हमारे पास दो बाइनरी ट्री हैं; हमें जांचना है कि क्या दोनों ट्री में बाएं से दाएं लीफ का अनुक्रम समान है। उदाहरण के लिए, यदि इनपुट इस तरह है: तो आउटपुट True होगा क्योंकि दोनों ट्री के लिए अनुक्रम [2, 6] है। इसे हल करने के लिए, हम निम्न चरणों का पालन करेंगे: c := एक नई सूची एक फ़ंक्शन ino

  1. Python में ट्री के सभी मान समान हैं या नहीं, इसकी जांच करने का प्रोग्राम Python में ट्री के सभी मान समान हैं या नहीं, इसकी जांच करने का प्रोग्राम

    मान लीजिए हमारे पास एक बाइनरी ट्री है, हमें यह जांचना है कि ट्री में सभी नोड्स के समान मान हैं या नहीं। तो, यदि इनपुट इस तरह है तो आउटपुट True होगा। इसे हल करने के लिए, हम इन चरणों का पालन करेंगे: solve() फ़ंक्शन परिभाषित करें। यह root और val लेगा यदि root null है, तो True लौटाएं यदि val परिभाष