LeetCode刷题笔记第83题:删除排序链表中的重复元素
想法:
因为原链表中元素是升序排列,重复元素都会排列在一起,通过循环遍历整个链表,将相邻的重复元素删除,即可返回没有重复元素的链表。
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, val=0, next=None):
# self.val = val
# self.next = next
class Solution:
def deleteDuplicates(self, head: ListNode) -> ListNode:
# 删除排序链表中的重复元素
# 判断链表是否为空
if not head:
return head
# 设置指针指向头结点
cur = head
# 通过对链表中是否有元素的判断进行循环操作
while cur.next:
# 当前位置元素与下一位置元素数值相同时
if cur.val == cur.next.val:
# 删除重复元素,指针指向下下一位置
cur.next = cur.next.next
else:
# 没有重复元素则继续循环
cur = cur.next
# 返回链表
return head