def create_linked_list(lst): dummy = ListNode() # 创建一个虚拟头节点current = dummy # 设置当前节点为虚拟头节点 for number in lst: # 遍历输入的列表 current.next = ListNode(number) # 创建新节点,连接到当前节点的后面 current = current.next # 将当前节点指针移动到下一个节点 return dummy.next...
AI检测代码解析 classLinkedList:def__init__(self):self.head=Nonedefinsert(self,value):new_node=ListNode(value)ifnotself.head:# 如果链表为空self.head=new_nodereturncurrent=self.headwhilecurrent.next:# 找到最后一个节点current=current.nextcurrent.next=new_node# 插入新的节点 1. 2. 3. 4. 5. ...
接下来,我们将创建一个简单的链表,并演示如何在链表中插入、删除和遍历节点。 1. 创建链表 可以通过连接多个ListNode实例来创建链表。以下是一个创建链表的示例: defcreate_linked_list(values):ifnotvalues:returnNonehead=ListNode(values[0])current=headforvalueinvalues[1:]:current.next=ListNode(value)current=...
可以通过循环遍历链表中的每个节点,直到遍历到最后一个节点。 5.插入节点: ```python new_node = ListNode(4) new_node.next = head.next head.next = new_node ``` 使用一个新节点new_node,并通过指定的链接方式将其插入到已有的链表中。 6.删除节点: ```python head.next = head.next.next ``` ...
class ListNode: def __init__(self, val=0, next=None): self.val = val self.next = next def reverse_linked_list(head): prev = None curr = head while curr: next_node = curr.next curr.next = prev prev = curr curr = next_node return prev # 测试 node1 = ListNode(1) node2 = ...
单链表的中点,遍历一次 合并两个有序链表 利用了两个链表已经有序的特点,增加一个虚拟节点解决 class ListNode: def __init__(self, val=0, next=None): self.val = val self.next = next def merge_two_sorted_lists(l1, l2): # 创建一个哑节点作为新链表的起始节点 dummy = ListNode() current ...
defmiddleNode(self, head):""":type head: ListNode :rtype: ListNode"""slow= fast =headwhilefastandfast.next: slow=slow.next fast=fast.next.nextreturnslow 案例:删除有序数组中的重复项 给你一个升序排列的数组nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。
defadd_at_head(self,val):new_node=ListNode(val)new_node.next=self.head self.head=new_node defadd_at_tail(self,val):new_node=ListNode(val)ifself.is_empty():self.head=new_nodeelse:current=self.headwhilecurrent.next:current=current.next ...
pPreNode.next=pNext#开始从最新的节点开始遍历pNode =pNext#返回头结点returnpHead classSolution:defdeleteDuplicates(self, head: ListNode) ->ListNode: ans=headwhilehead !=None:ifhead.next != Noneandhead.next.val ==head.val: head.next=head.next.nextelse: ...
def list2node(data): # 列表转节点 if not data: return None return ListNode(data[0], list2node(data[1:])) def node2list(head): # 节点转列表 if not head: return [] return [head.val] + node2list(head.next) 迭代法 代码语言:javascript 代码运行次数:0 运行 AI代码解释 # 迭代法 def...