Ideas
数据结构:链表
Code
时间复杂度:O(N)
空间复杂度:O(1)
# 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 = cur.next
else:
cur.next = cur.next.next
return head
C++
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode() : val(0), next(nullptr) {}
* ListNode(int x) : val(x), next(nullptr) {}
* ListNode(int x, ListNode *next) : val(x), next(next) {}
* };
*/
class Solution {
public:
ListNode* deleteDuplicates(ListNode* head) {
if(head==nullptr){
return nullptr;
}
ListNode* l=head;
while(head->next){
if(head->next->val==head->val){
head->next=head->next->next;
}
else{
head=head->next;
}
}
return l;
}
};