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

पायथन में रूट से लीफ तक के सबसे लंबे पथ के योग को खोजने का प्रोग्राम


मान लीजिए हमारे पास एक बाइनरी ट्री है, हमें रूट से लीफ नोड तक के सबसे लंबे पथ का योग ढूंढना है। यदि दो समान लंबे पथ हैं, तो बड़े योग वाले पथ को वापस करें।

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

पायथन में रूट से लीफ तक के सबसे लंबे पथ के योग को खोजने का प्रोग्राम

तो आउटपुट 20 होगा।

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे −

  • एक फ़ंक्शन rec() परिभाषित करें। यह curr लेगा

  • यदि curr null है, तो

    • (0, 0) वापस करें

  • bigger := rec(curr का बायाँ) , rec(curr का दायाँ) का अधिकतम

  • एक जोड़ी वापस करें (bigger[0] + 1, bigger[1] + curr का मान)

  • मुख्य विधि से निम्नलिखित करें −

  • ret := rec(root)

  • ret का 1वां इंडेक्स वापस करें

बेहतर समझ के लिए निम्नलिखित कार्यान्वयन देखें −

उदाहरण

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):       def rec(curr):          if not curr:             return (0, 0)          bigger = max(rec(curr.left), rec(curr.right))          return (bigger[0] + 1, bigger[1] + curr.val)       return rec(root)[1] ob = Solution() root = TreeNode(2) 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))

इनपुट

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

आउटपुट

20

  1. पायथन में बाइनरी ट्री के किसी भी पथ का सबसे बड़ा योग खोजने का प्रोग्राम पायथन में बाइनरी ट्री के किसी भी पथ का सबसे बड़ा योग खोजने का प्रोग्राम

    मान लीजिए हमारे पास एक बाइनरी ट्री है, हमें रूट नोड से लीफ नोड तक जाने वाले किसी भी पथ का सबसे बड़ा योग ढूंढना है। उदाहरण के लिए, यदि इनपुट जैसा है: तो आउटपुट 29 होगा क्योंकि रूट से, यदि हम पथ 5-<9-<7-<8 का पालन करते हैं तो जोड़ के बाद यह 29 होगा। इसे हल करने के लिए हम निम्न चरणों का पालन करेंगे:

  1. पायथन में बाइनरी ट्री की अधिकतम चौड़ाई खोजने का प्रोग्राम पायथन में बाइनरी ट्री की अधिकतम चौड़ाई खोजने का प्रोग्राम

    मान लीजिए हमारे पास एक बाइनरी ट्री है, हमें ट्री में किसी भी स्तर की अधिकतम चौड़ाई ढूंढनी है। यहां एक स्तर की चौड़ाई उन नोड्स की संख्या है जो बाएं सबसे नोड और दाएं सबसे नोड के बीच रखे जा सकते हैं। उदाहरण के लिए, यदि इनपुट है: तो आउटपुट होगा 2। हल करने के चरण एक मैप d बनाएं, न्यूनतम और अधिकतम मान

  1. Python में बाइनरी ट्री अधिकतम पथ योग Python में बाइनरी ट्री अधिकतम पथ योग

    मान लीजिए हमारे पास एक गैर-खाली बाइनरी ट्री है। हमें पथ योग ढूंढना है। तो यहां, एक पथ कुछ प्रारंभिक नोड से किसी भी नोड तक नोड्स का कोई अनुक्रम है जहां पैरेंट-चाइल्ड कनेक्शन मौजूद हैं। पथ में कम से कम एक नोड होना चाहिए और रूट नोड से गुजरने की आवश्यकता नहीं है। इसलिए यदि इनपुट ट्री है −यहां आउटपुट 32