मैं अपनी मुद्रित सूची के पहले तत्व के रूप में "कोई नहीं" प्राप्त करता रहा। लेकिन अजीब बात यह है कि मुझे कभी भी "कोई नहीं" नहीं मिलना चाहिए, यह देखते हुए कि मेरा कोड कैसा दिखता है:

def display(self):
    e = []
    curr = self.head
    while curr != None:
        e.append(curr.data)
        curr = curr.next
    print(e)

इसलिए यदि कर्व नोड "कोई नहीं" है, तो प्रोग्राम कभी भी लूप में प्रवेश नहीं करेगा, लेकिन आउटपुट हमेशा यही था:

[None, 2, 2, 5, 8]

अजीब है, है ना?

नीचे पूरा कोड है। कृपया कोई मदद करे! शुक्रिया!

    class node:
    def __init__(self, data=None):
        self.data = data
        self.next = None


class linked_list:
    def __init__(self):
        self.head = node()

    def append(self, data):
        new_node = node(data)
        curr = self.head
        if self.head == None:
            self.head = new_node

        while curr.next != None:
            curr = curr.next
        curr.next = new_node

    def length(self):
        curr = self.head
        total = 0
        while curr.next != None:
            total += 1
            curr = curr.next
        print total

    def display(self):
        e = []
        curr = self.head
        while curr != None:
            e.append(curr.data)
            curr = curr.next
        print(e)


my_list = linked_list()
my_list.append(2)
my_list.append(2)
my_list.append(5)
my_list.append(8)
my_list.length()
my_list.display()
-1
Tim Xu 28 फरवरी 2020, 11:20
None के साथ तुलना करने के लिए आपको is और is not का उपयोग करना चाहिए। == और != नहीं।
 – 
Mateen Ulhaq
28 फरवरी 2020, 11:23
आपने कभी भी head.data को None के अलावा किसी अन्य मान पर सेट नहीं किया है, इसलिए निश्चित रूप से head.data is None!
 – 
Mateen Ulhaq
28 फरवरी 2020, 11:25
curr != None को curr.data is not None से बदलें।
 – 
MaxiMouse
28 फरवरी 2020, 11:27
2
कृपया एक न्यूनतम प्रतिलिपि प्रस्तुत करने योग्य उदाहरण पोस्ट करें जिसमें आपकी एक सूची शामिल हो। समस्या आपके बाकी कोड में है।
 – 
molbdnilo
28 फरवरी 2020, 11:28
"नहीं है" समस्या नहीं है, मैं थक गया यह अभी भी वही परिणाम निकला।
 – 
Tim Xu
28 फरवरी 2020, 11:37

1 उत्तर

def display(self):
    e = []
    curr = self.head
    while curr is not None:
        e.append(curr.data)
        curr = curr.next
    print(e)

!= को अजगर के is not से बदलें

-1
Raicha 28 फरवरी 2020, 11:30
इससे मसला हल नहीं होता। अगर किसी को display को जरूरी बदलना है, तो समस्या को हल करने का एक मामूली तरीका curr = self.head.next को लाइन 3 पर सेट करना होगा।
 – 
Mateen Ulhaq
28 फरवरी 2020, 11:44