LeetCode(80)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.

分析

删除链表中重复元素结点。 该题目本质很简单,,只需一次遍历。需要注意的是,要释放删除的结点空间。

AC代码/** * 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) {if (head == NULL || head->next == NULL)return head;ListNode *p = head, *q = p->next;while (p && q){if (p->val == q->val){ListNode *t = q;p->next = q->next;q = q->next;//释放要删除的结点空间delete t;}else{p = p->next;q = q->next;}//elif}//whilereturn head;}};

GitHub测试程序源码

你可以这样理解 impossible(不可能)–I'm possible (我是可能的)。

LeetCode(80)Remove Duplicates from Sorted List

相关文章:

你感兴趣的文章:

标签云: