本文共 749 字,大约阅读时间需要 2 分钟。
存在一个按升序排列的链表,给你这个链表的头节点 head ,请你删除所有重复的元素,使每个元素 只出现一次 。
返回同样按升序排列的结果链表。
示例1:
输入:head = [1,1,2]
输出:[1,2]示例 2:
输入:head = [1,1,2,3,3]
输出:[1,2,3]解题思路: 涉及链表的基本操作,因为需要返回链表的头节点,所以要保留链表的头结点,在副本cur上判断节点的val是否相等;
1. 当当前结点的值和后一个节点的值相等时,跳过下个结点即 cur.next = cur.next.next;
2. 当当前结点的值和后一个结点的值不相等是,cur = cur.next;
# Definition for singly-linked list.# class ListNode:# def __init__(self, val=0, next=None):# self.val = val# self.next = nextclass 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
转载地址:http://ewygf.baihongyu.com/