本文共 1025 字,大约阅读时间需要 3 分钟。
Given a sorted linked list, delete all nodes that have duplicate numbers, leaving only distinct numbers from the original list.
Example 1:
Input: 1->2->3->3->4->4->5Output: 1->2->5
Example 2:
Input: 1->1->1->2->3Output: 2->3
AC code:
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode* deleteDuplicates(ListNode* head) { ListNode* dummy = new ListNode(0); dummy->next = head; ListNode* p = dummy; while (p->next != NULL && p->next->next != NULL) { if (p->next->val == p->next->next->val) { int sameNum = p->next->val; while (p->next != NULL && p->next->val == sameNum) p->next = p->next->next; } else { p = p->next; } } return dummy->next; }};
Runtime: 4 ms, faster than 100.00% of C++ online submissions for Remove Duplicates from Sorted List II.
转载地址:http://fzxuz.baihongyu.com/