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

पायथन में एकल लिंक की गई सूची के मध्य नोड को खोजने का कार्यक्रम

मान लीजिए कि हमारे पास एक एकल लिंक्ड सूची नोड है, हमें मध्य नोड का मान ज्ञात करना है। और जब दो मध्य नोड होंगे, तो हम दूसरे को वापस कर देंगे। हमें इसे सिंगल पास में हल करने का प्रयास करना होगा।

इसलिए, अगर इनपुट [5,9,6,4,8,2,1,4,5,2] जैसा है, तो आउटपुट 2 होगा।

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

  • p:=नोड

  • डी:=0, एल:=0

  • जबकि नोड शून्य नहीं है, करें

    • यदि d 2 के समान नहीं है, तो

      • नोड:=नोड के आगे

      • एल:=एल + 1, डी:=डी + 1

    • अन्यथा,

  • p:=p के आगे, d:=0

    • p का ​​रिटर्न वैल जब l विषम हो अन्यथा p के अगले का मान

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

उदाहरण

class ListNode:
   def __init__(self, data, next = None):
      self.val = data
      self.next = next
   def make_list(elements):
      head = ListNode(elements[0])
   for element in elements[1:]:
      ptr = head
      while ptr.next:
         ptr = ptr.next
         ptr.next = ListNode(element)
      return head
class Solution:
   def solve(self, node):
      p=node
      d=0
      l=0
   while node:
      if d!=2:
         node=node.next
         l+=1
         d+=1
      else:
         p=p.next
         d=0
   return p.val if l & 1 else p.next.val
ob = Solution()
head = make_list([5,9,6,4,8,2,1,4,5,2])
print(ob.solve(head))

इनपुट

Input:
[5,9,6,4,8,2,1,4,5,2]

आउटपुट

2

  1. पायथन में लिंक की गई सूची के K-वें अंतिम नोड को खोजने का कार्यक्रम

    मान लीजिए कि हमारे पास एक एकल लिंक की गई सूची है, हमें kth अंतिम नोड (0-अनुक्रमित) का मान ज्ञात करना है। हमें इसे सिंगल पास में हल करना होगा। इसलिए, यदि इनपुट नोड =[5,4,6,3,4,7], के =2 जैसा है, तो आउटपुट 3 होगा, क्योंकि दूसरे अंतिम (इंडेक्स 3) नोड का मान 3 है। इसे हल करने के लिए, हम इन चरणों का पा

  1. सूची में सबसे छोटी संख्या खोजने के लिए पायथन प्रोग्राम

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

  1. एक सूची में सबसे बड़ी संख्या खोजने के लिए पायथन कार्यक्रम

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे। समस्या कथन - हमें एक सूची दी गई है, हमें सूची के सबसे बड़े तत्व की गणना करने की आवश्यकता है। यहाँ हम समस्या कथन के समाधान तक पहुँचने के लिए बिल्ट-इन फ़ंक्शंस की मदद लेंगे सॉर्ट() फ़ंक्शन का उपयोग करना उदाहरण # list list1 = [23,1