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

पायथन में ट्री के बाएं सबसे गहरे नोड को खोजने का प्रोग्राम


मान लीजिए हमारे पास एक बाइनरी ट्री है; हमें सबसे गहरे नोड का मान ढूंढना है। यदि एक से अधिक सबसे गहरे नोड हैं, तो सबसे बाएं गहरे नोड को लौटाएं।

उदाहरण के लिए, यदि इनपुट निम्न ट्री है:

पायथन में ट्री के बाएं सबसे गहरे नोड को खोजने का प्रोग्राम

तो आउटपुट 4 होगा क्योंकि 4 और 7 सबसे गहरे हैं लेकिन 4 सबसे बाएं है।

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

  • queue := [root] वाली एक क्यू बनाएं।

  • left_max := root.val।

  • जब तक क्यू का आकार > 0:

    • level_size := len(queue)।

    • i को 0 से level_size - 1 तक लूप में चलाएं:

      • temp := queue.pop(0)।

      • यदि i == 0, तो left_max := temp.val।

      • यदि temp.left है, तो queue.append(temp.left)।

      • यदि temp.right है, तो queue.append(temp.right)।

  • left_max लौटाएं।

उदाहरण

class TreeNode:    def __init__(self, value):       self.val = value       self.left = None    self.right = None class Solution:    def solve(self, root):       queue = [root]       left_max = root.val       while len(queue) > 0:          level_size = len(queue)          for i in range(level_size):             temp = queue.pop(0)             if i == 0:                left_max = temp.val             if temp.left:                queue.append(temp.left)             if temp.right:                queue.append(temp.right)       return left_max ob = Solution() root = TreeNode(13) root.left = TreeNode(12) root.right = TreeNode(14) root.right.left = TreeNode(16) root.right.right = TreeNode(22) root.right.left.left = TreeNode(4) root.right.left.right = TreeNode(7) print(ob.solve(root))

इनपुट

root = TreeNode(13) root.left = TreeNode(12) root.right = TreeNode(14) root.right.left = TreeNode(16) root.right.right = TreeNode(22) root.right.left.left = TreeNode(4) root.right.left.right = TreeNode(7) 

आउटपुट

4

  1. पायथन में बाइनरी ट्री में सबसे लंबे सम-मूल्य पथ को खोजने का प्रोग्राम पायथन में बाइनरी ट्री में सबसे लंबे सम-मूल्य पथ को खोजने का प्रोग्राम

    मान लीजिए हमारे पास एक बाइनरी ट्री है, हमें ट्री में किन्हीं दो नोड्स के बीच केवल सम मान वाले नोड्स से बने सबसे लंबे पथ को ढूंढना है। उदाहरण के लिए, यदि इनपुट निम्न ट्री है: तो आउटपुट 5 होगा क्योंकि सबसे लंबा पथ [10, 2, 4, 8, 6] है। इसे हल करने के लिए हम निम्न चरणों का पालन करेंगे: ans := 0 आरंभ क

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

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

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

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