簡體   English   中英

如何在鏈表中找到最大的元素?

[英]how to find largest element in a linked list?

我有以下程序來定義鏈接列表:

class Node:
    def __init__(self, data):
        self.data  = data
        self.nxt = None
class lnklst:
    def __init__(self):
        self.start = None

    def addNode(self,value):
        nuNde = Node(value)
        if self.start is None:
           self.start = nuNde
        else:
            p = self.start
            while p.nxt != None:
                p = p.nxt
            p.nxt = nuNde

    def viewNde(self):
        tp = self.start
        while tp is not None:
            print(tp.data, end=' <--> ')
            tp = tp.nxt

def highEle(self):
    a = self.start
    b = a.nxt
    while a:
        if a.data > b.data:
            a.data = b.data
        tmp = a.data
        a.data = self.start
        self.start = tmp

我能夠創建鏈表並查看元素。 但是,從鏈表中查找最大元素( def highEle )的邏輯不起作用。

查找最大元素的邏輯如下:

- Take 2 pointers 'a' and 'b'.
- a = b
- Since, a = b, then b holds a.next
- Run a while loop until a is not None.
- Inside while loop, define a 'if' statement to check if `a.data > b.data`, then swap.

但邏輯似乎不起作用。 請建議。

這將返回列表中的最大數字。

    def highEle(self):
        sofar = 0
        a = self.start
        while a:
            if a.data > sofar:
                sofar = a.data
            a = a.next
        return sofar

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM