题目
思路
比较暴力的解法,直接比较当前结点和下一个结点的值,相同则删除下一个结点,当前结点的next指针直接指到下下个结点上。
代码
# Definition for singly-linked list.
# class ListNode(object):
# def __init__(self, val=0, next=None):
# self.val = val
# self.next = next
class Solution(object):
def deleteDuplicates(self, head):
"""
:type head: ListNode
:rtype: ListNode
"""
start = head ##需要用一个新指针,如果直接用start则会改变整个链表,丢失前面的结点
while start and start.next: ##循环条件:当前结点和下一个结点都存在
if start.val == start.next.val: ##判定当前结点和下一结点值是否相同
start.next = start.next.next ##next指针直接指到下下个结点
else:
start = start.next ##不同的话则继续遍历结点
return head