classnode:
def__init__(self, value=none, next=none):
self.value =value
self.next =next
class
linkedlist(object):
def__init__
(self):
#初始化鍊錶時, 建立乙個head節點,該節點的value和next都為none
#head的value值是啥無所謂
#注意, 不要把鍊錶的head節點和head節點指向的下乙個節點看著是乙個節點
#head.next 才是鍊錶的第乙個節點
#head是鍊錶的乙個屬性
#遍歷鍊錶時都是從 head.next 開始的
node =node()
self.head =node
#頭插法, 在鍊錶的頭部插入乙個新的節點
defadd_first(self, value):
node =node(value)
node.next = self.head.next #
把第乙個節點self.head.next,作為新節點的next
self.head.next = node #
第乙個節點為新節點, head指向新節點
#在尾部新增乙個元素
defadd_last(self, value):
node =node(value)
#空鍊錶
if self.head.next is
none:
self.head.next =node
#非空鍊錶
else
:
#從第乙個節點開始遍歷, 直到最後乙個節點
current =self.head.next
while current.next: #
注意這裡是current.next,因為後面使用了current.next
current =current.next
current.next =node
defremove_first(self):
self.head.next =self.head.next.next
def__str__
(self):
current =self.head.next
while
current:
print(current.value, end='\t'
) current =current.next
return
''def
merge_sort_linked_list(l1, l2):
dummy = cur =node()
while l1 and
l2:
if l1.value cur.next =l1
l1 =l1.next
else
: cur.next =l2
l2 =l2.next
cur =cur.next
cur.next= l1 or
l2
return dummy.next
python鍊錶
class node def init self,data 要存的資料 self.data data 指向下乙個節點的指標 self.next none class linkedlist def init self 鍊錶長度 self.size 0 鍊錶的頭部 self.head none 鍊錶的尾...
鍊錶(python)
class node def init self,value none next none self.value value self.next next class linkedlist def init self self.head node self.tail none self.length...
python 鍊錶
在c c 中,通常採用 指標 結構體 來實現鍊錶 而在python中,則可以採用 引用 類 來實現鍊錶。節點類 class node def init self,data self.data data self.next none 鍊錶類 class linkedlist def init self...