কম্পিউটার টিউটোরিয়াল

পাইথনে বাইনারি ট্রিতে দুটি উপাদানের সাধারণ পূর্বপুরুষ খুঁজে বের করার প্রোগ্রাম

মান लीजिए हमारे पास एक बाइनरी ट्री है, और हमारे पास दो संख्याएं a और b हैं। हमें उस सबसे निचले नोड का मान ढूंढना है जिसके a और b वंशज हैं। ध्यान रखें कि एक नोड स्वयं का वंशज हो सकता है।

यदि इनपुट निम्नलिखित ट्री जैसा है:

পাইথনে বাইনারি ট্রিতে দুটি উপাদানের সাধারণ পূর্বপুরুষ খুঁজে বের করার প্রোগ্রাম

a = 6, b = 2, तो आउटपुट होगा 4

समाधान दृष्टिकोण

इसे हल करने के लिए हम निम्नलिखित चरणों का पालन करेंगे:

  • solve() मेथड परिभाषित करें जो root, a, b लेता है
  • यदि root null है, तो -1 वापस करें
  • यदि root का मान a या b है, तो root का मान वापस करें
  • left := solve(root के बाएं, a, b)
  • right := solve(root के दाएं, a, b)
  • यदि left या right -1 नहीं है, तो root का मान वापस करें
  • left वापस करें यदि left -1 नहीं है अन्यथा right
  • मुख्य मेथड से solve(root) कॉल करें

उदाहरण कोड

class TreeNode:
    def __init__(self, val, left=None, right=None):
        self.val = val
        self.left = left
        self.right = right

class Solution:
    def solve(self, root, a, b):
        if not root:
            return -1
        if root.val in (a, b):
            return root.val
        left = self.solve(root.left, a, b)
        right = self.solve(root.right, a, b)
        if -1 not in (left, right):
            return root.val
        return left if left != -1 else right

ob = Solution()
root = TreeNode(3)
root.left = TreeNode(10)
root.right = TreeNode(4)
root.right.left = TreeNode(8)
root.right.right = TreeNode(2)
root.right.left.left = TreeNode(6)
print(ob.solve(root, 6, 2))

इनपुट

root = TreeNode(3) root.left = TreeNode(10) root.right = TreeNode(4) root.right.left = TreeNode(8) root.right.right = TreeNode(2) root.right.left.left = TreeNode(6) 6, 2

आउटपुट

4
  1. পাইথনে বাইনারি ট্রিতে রুট থেকে লিফ পর্যন্ত যেকোনো পথের সর্বোচ্চ যোগফল খুঁজে বের করার প্রোগ্রাম

  2. পাইথনে বাইনারি ট্রির সর্বাধিক প্রস্থ (Maximum Width) বের করার প্রোগ্রাম

  3. পাইথনে বাইনারি ট্রির Lowest Common Ancestor (সর্বনিম্ন কমন অ্যানসেস্ট্র)

  4. পাইথনে বাইনারি সার্চ ট্রিতে লোয়েস্ট কমন আনসেসটর