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

Python से बाइनरी ट्री में दिए गए नोड के दाएं वाले नोड को कैसे ढूंढें?

लेवल ऑर्डर ट्रैवर्सल (BFS) से दिए गए नोड के उसी लेवल पर दाएं पड़ोसी नोड को ढूंढें।

एल्गोरिदम

  • क्यू से BFS, लेवल दर लेवल प्रोसेस करें।
  • प्रत्येक लेवल के नोड्स को temp लिस्ट में स्टोर करें।
  • अगर टारगेट नोड u मिले तो उसका इंडेक्स नोट करें।
  • अगर इंडेक्स अंतिम है तो None रिटर्न (दाएं कोई नहीं)।
  • अन्यथा temp[index+1] रिटर्न करें।

उदाहरण कोड


from queue import deque

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

def solve(root, u):
    if not root: return None
    dq = deque([root])
    while dq:
        dq_size = len(dq)
        temp = []
        index = -1
        for _ in range(dq_size):
            node = dq.popleft()
            if node.left: dq.append(node.left)
            if node.right: dq.append(node.right)
            temp.append(node)
            if node == u:
                index = len(temp) - 1
        if index == len(temp) - 1: return None
        if index > -1: return temp[index + 1]
    return None

# टेस्ट: ट्री [5,3,7,2,4,6,8], u=6 -> दाएं नोड = 8

इनपुट/आउटपुट

इनपुट: ट्री [5,3,7,2,4,6,8], नोड u=6
आउटपुट: 8

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

    मान लीजिए हमारे पास एक मान k और एक बाइनरी सर्च ट्री है, जहां प्रत्येक नोड या तो एक लीफ है या इसमें 2 बच्चे हैं। हमें मान k वाले नोड को खोजना है और उसके सिबलिंग का मान वापस करना है।इसलिए, यदि इनपुट इस तरह हैk = 4, तो आउटपुट 10 होगा।इसे हल करने के लिए, हम इन चरणों का पालन करेंगे −एक फ़ंक्शन util

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

    मान लीजिए हमारे पास एक बाइनरी ट्री है, हमें दो संख्याओं की एक सूची ढूंढनी है जहां पहली संख्या ट्री में पत्तियों की संख्या है और दूसरी संख्या गैर-पत्ती नोड्स की संख्या है।इसलिए, यदि इनपुट इस तरह हैतो आउटपुट (3, 2) होगा, क्योंकि 3 पत्तियां और 2 गैर-पत्ती नोड्स हैं।इसे हल करने के लिए, हम इन चरणों का पा

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

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