before_head=ListNode(0) #哑ListNode(0),before_head作用和head一样 before=before_head #游标指针 after_head=ListNode(0) #哑ListNode(0),after_head作用和head一样 after=after_head #游标指针 while head: #用head遍历链表,head为第一个节点 if head.
to_add = ListNode(val) curr = self.head # 伪头节点 # 0,... ,index-1 for _ in range(index): # 指向下一节点,等同于指向索引节点,最大的索引= 长度-1 curr = curr.next # 添加操作 to_add.next = curr.next curr.next = to_add # 记录链表长度的变化 self.size += 1 1. 2. 3. 4...
classListNode(object):def__init__(self,x):self.val=x self.next=NoneclassSolution(object):defreverList(self,head):ifhead==None:returnNone pre=ListNode(1)pre=None r=ListNode(1)whilehead!=None:r=head.next head.next=pre pre=head head=rreturnpreif__name__=='__main__':head=ListNode(1...
head1 = ListNode(0) head2 = ListNode(0) Tmp = head phead1 = head1 phead2 = head2 while Tmp: if Tmp.val < x: phead1.next = Tmp Tmp = Tmp.next phead1 = phead1.next phead1.next = None else: phead2.next = Tmp Tmp = Tmp.next phead2 = phead2.next phead2.next = ...
#1、链表反转classListNode:def__init__(self, x): self.val=x self.next=Nonedefnonrecurse(head):#循环的方法反转链表ifheadisNoneorhead.nextisNone:returnhead pre=None cur=head h=headwhilecur: h=cur tmp=cur.next cur.next=pre pre=cur ...
self.items.append(item)defdequeue(self):ifself.is_empty():returnNonereturnself.items.pop(0)defis_empty(self):returnlen(self.items) ==0defpeek(self):ifself.is_empty():returnNonereturnself.items[0]# 链表# 单链表节点类classListNode:def__init__(self, value=0,next=None): ...
:self.append(value)else:new_node=Node(value)current=self._headfor_inrange(index-1):current=current.nextnew_node.next=current.nextcurrent.next=new_node# 删除节点defremove(self,value):current=self._headpre=NonewhilecurrentisnotNone:ifcurrent.value==value:ifnotpre:self._head=current.nextelse:...
1.2.1 Python 内置数据结构算法 常用内置数据结构和算法: 线性结构: 语言内置:list(列表)、tuple(元组) 内置库:array(数组,不常用)、collections.namedtuple 链式结构: 语言内置:无 内置库:collections.deque(双端队列) 字典结构: 语言内置:dict(字典)
next = pre.next pre.next = newnode self.size += 1 在链表中删除数据 def remove(self, index): if index < 0 or index > self.size: raise Exception('越界') elif self.size == 1: (头) renode = self.head self.head = self.head.next elif index == self.size: (尾) pre = self....
def mergeKLists(self, lists: List[ListNode]) -> ListNode: prehead = ListNode() heap = [] for i in range(len(lists)): node = lists[i] while node: heapq.heappush(heap, node.val) node = node.next node = prehead while len(heap) > 0: val = heapq.heappop(heap) node.next = ...