📅  最后修改于: 2023-12-03 15:09:36.412000             🧑  作者: Mango
有时候我们需要将链表中的某些元素进行排列组合,而其中一个常见的需求就是需要将链表中的所有零移到前面。
本题的解题思路非常简单,我们只需要创建两个指针:一个指向链表头节点,另一个用于遍历链表。
遍历链表,如果当前节点的值为零,我们就将它移到链表的前面。这个操作可以通过修改指针的指向来实现。
最后返回新的链表即可。
以下是使用 Python 语言实现的代码片段:
class ListNode:
def __init__(self, x):
self.val = x
self.next = None
class Solution:
def moveZeroes(self, head: ListNode) -> ListNode:
dummy = ListNode(0)
dummy.next = head
cur = dummy
while cur.next:
if cur.next.val == 0:
tmp = cur.next
cur.next = cur.next.next
tmp.next = dummy.next
dummy.next = tmp
else:
cur = cur.next
return dummy.next
ListNode
。Solution
类,其中包含一个方法 moveZeroes
。moveZeroes
方法里定义了两个指针 dummy
和 cur
。cur.next
节点的值为0,则将其移到链表的前面。本题解题思路非常简单,只需要掌握链表的基本操作和指针的指向即可。在实现过程中要注意处理好指针的指向和链表的断开与连接。