python - 如何找到链表中的最大元素?
问题描述
我有以下程序来定义链接列表:
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
推荐阅读
- reactjs - useState 不支持第二次回调,有什么简单的解决方法?
- android - Google Play 发布前报告安全漏洞,表明所有域都允许明文流量
- python-3.x - 如何管理分布式系统中的速率限制?
- mongodb - 如何查找对象数组,并且每个对象都有每个对象的不同 ObjectId
- sql - 我们可以从sql中的列中选择第一行数据吗?
- javascript - 将两个数组中的数据添加到 CSV 输出中
- java - 为什么 getAnnotation(Parsed.class).field() 返回 String[]?(它应该返回 String,因为它将输入作为 String)
- kotlin - 如何使用 Jackson Object Mapper 将 UUID 值从 Json 映射到 Java 对象?
- javascript - 与 js“.sass 文件”共享 sass 变量
- java - 杰克逊在使用 JsonTypeInfo.As.WRAPPER_OBJECT 时排除特定类的包装