我想了解鏈接列表的概念。我搜索了關於我的問題的信息,但我還沒有找到任何可以幫助我的答案。 我想知道如何檢查鏈表是否被排序? 顯然,我們不能像常規列表那樣使用簡單的兩行函數。 例如,如果我想檢查我的列表進行排序(不使用list.sort()
),我會創建這樣的功能:python:如何檢查鏈表是否排序
def is_sorted(l):
return all(a <= b for a, b in zip(l[:-1], l[1:]))
但對於鏈表,我應該比較列表尾部和頭部值?它是如何工作的?
我金相結構用來創建鏈表:
class Node :
def __init__(self, data):
self.data = data
self.next = None
self.prev = None
class LinkedList:
def __init__(self):
self.head = None
def add(self, data):
node = Node(data)
if self.head == None:
self.head = node
else:
node.next = self.head
node.next.prev = node
self.head = node
def search(self, k):
p = self.head
if p != None :
while p.next != None :
if (p.data == k) :
return p
p = p.next
if (p.data == k) :
return p
return None
def remove(self, p) :
tmp = p.prev
p.prev.next = p.next
p.prev = tmp
def __str__(self) :
s = ""
p = self.head
if p != None :
while p.next != None :
s += p.data
p = p.next
s += p.data
return s