leetcode 每日一题 82. 删除排序链表中的重复元素 II
2021-05-13 15:31
标签:def mamicode leetcode one idt color 创建 span alt 双指针 思路: 创建一个空的头结点dummy,头节点的下一节点是head。用cur指向当前要处理去重的节点,pre指向上一个完成去重的节点。初始状态pre = dummy,cur = pre.next。开始对cur进行处理,如果cur.next.val == cur.val,while遍历更新cur指向的节点找到最后一个和cur.val相同的节点。然后让pre下一个指向的节点变成最后一个和cur.val相同节点下一个指向的节点,这样达到对cur.val相同的节点的去重操作,也即pre.next = cur.next,cur = cur.next(这里要注意的是,pre本身指向的并没有改变),继续进行遍历去重操作。如果cur.next.val != cur.val,则更新pre和cur的值,即pre = pre.next,cur = cur.next。去重结束后,返回dummy指向的下一节点即可。 例如: 1->2->3->3->4->4->5
代码: leetcode 每日一题 82. 删除排序链表中的重复元素 II 标签:def mamicode leetcode one idt color 创建 span alt 原文地址:https://www.cnblogs.com/nilhxzcode/p/13129843.html# Definition for singly-linked list.
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution:
def deleteDuplicates(self, head: ListNode) -> ListNode:
dummy = ListNode(-1)
dummy.next = head
pre = dummy
cur = pre.next
while cur and cur.next:
if cur.val == cur.next.val:
while cur.next and cur.val ==cur.next.val:
cur = cur.next
pre.next = cur.next
cur = cur.next
else:
pre = pre.next
cur = cur.next
return dummy.next
文章标题:leetcode 每日一题 82. 删除排序链表中的重复元素 II
文章链接:http://soscw.com/index.php/essay/85207.html