【LeetCode】Remove Duplicates from Sorted List I && II

来源:互联网 发布:政府网络舆情管理 编辑:程序博客网 时间:2024/06/05 21:49

题目描述:

Remove Duplicates from Sorted List

Given a sorted linked list, delete all duplicates such that each element appear only once.

For example,
Given 1->1->2, return 1->2.
Given 1->1->2->3->3, return 1->2->3.

Remove Duplicates from Sorted List II

Given a sorted linked list, delete all nodes that have duplicate numbers, leaving only distinct numbers from the original list.

For example,
Given 1->2->3->3->4->4->5, return 1->2->5.
Given 1->1->1->2->3, return 2->3.

第一题每取到一个与前一个节点不同的节点链到新链表上即可。
第二题判定条件变为某节点与前后相邻节点都不相同,则链上新链表。
最后不要忘记将最后一个节点赋值NULL。
代码:
class Solution {public:ListNode *deleteDuplicates(ListNode *head) {if (!head)return NULL;ListNode *res = new ListNode(head->val);head = head->next;ListNode *node = res;while (head){if (head->val != node->val){node->next = head;node = node->next;}head = head->next;}node->next = NULL;return res;}};
class Solution {public:ListNode *deleteDuplicates(ListNode *head) {ListNode *res = new ListNode(0);ListNode *node = res;ListNode *prev(NULL);while (head){if ((!prev || head->val != prev->val) && (!head->next || head->val != head->next->val)){node->next = head;node = node->next;}prev = head;head = head->next;}node->next = NULL;return res->next;}};



0 0
原创粉丝点击