以下是一个保留链表中所有数字的示例代码:
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
def retain_all_numbers(head):
dummy = ListNode() # 创建一个虚拟节点作为新链表的头部
curr = dummy # 设置一个指针指向当前节点,初始时指向虚拟节点
while head:
if head.val >= 0: # 如果节点的值大于等于0,则将这个节点连接到新链表的末尾
curr.next = head
curr = curr.next # 移动指针指向新的末尾节点
head = head.next # 移动指针指向下一个节点
curr.next = None # 将新链表的末尾节点的next指针设置为None
return dummy.next # 返回新链表的头部节点
# 创建一个示例链表:1 -> -2 -> 3 -> -4 -> 5
head = ListNode(1)
head.next = ListNode(-2)
head.next.next = ListNode(3)
head.next.next.next = ListNode(-4)
head.next.next.next.next = ListNode(5)
# 保留链表中所有数字
new_head = retain_all_numbers(head)
# 打印新链表中的值:1 -> 3 -> 5
while new_head:
print(new_head.val)
new_head = new_head.next
输出结果为:
1
3
5
这个示例代码使用了一个虚拟节点来构建新的链表,然后遍历原链表,将值大于等于0的节点连接到新链表的末尾。最后返回新链表的头部节点。
上一篇:保留类型信息的加密
下一篇:保留两个特殊字符之间的字母