LeetCode_Remove Duplicates from Sorted List
来源:互联网 发布:口臭自己能闻到吗 知乎 编辑:程序博客网 时间:2024/06/03 15:59
一.题目
Remove Duplicates from Sorted List
Total Accepted: 53757 Total Submissions: 157010My SubmissionsGiven 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
.
Show Tags
Have you met this question in a real interview?
Yes
No
Discuss
二.解题技巧
这道题只是判断当前节点与下一个节点的值是否相等,如果相等,则越过该节点,如果与不相等,则将其保存的值复制到新的节点上,并更新指向该节点的指针,对于最后一个节点要进行特殊处理,将最后一个节点与新的链表的最后一个节点的值进行比较,如果不相等,则在新的链表最后添加一个值与原来链表的最后一个节点相同的节点,否则就忽略原来链表的最后一个节点。同样的,如果链表只有一个节点,那么就创建一个值与原来节点相同的新节点,并直接返回。
三.实现代码
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */#include <iostream>struct ListNode{ int val; ListNode *next; ListNode(int x) : val(x), next(NULL) {}};class Solution{public: ListNode *deleteDuplicates(ListNode *head) { if (head == NULL) { return NULL; } ListNode Header(10); ListNode *Tail = &Header; ListNode *Next = NULL; bool IsSingle = true; while(head->next != NULL) { IsSingle = false; Next = head->next; if (head->val != Next->val) { Tail->next = new ListNode(head->val); Tail = Tail->next; } head = Next; } if (IsSingle) { return new ListNode(head->val); } if (Tail->val != head->val) { Tail->next = new ListNode(head->val); } return Header.next; }};
四.体会
这道题的难点在于处理只有一个节点的情况和最后一个节点,其他的部分并不是很难,也不需要什么特殊的算法,就是遍历一遍链表即可。
版权所有,欢迎转载,转载请注明出处,谢谢
0 0
- LeetCode_Remove Duplicates from Sorted List
- LeetCode_remove-duplicates-from-sorted-list
- Leetcode_remove-duplicates-from-sorted-list-ii
- LeetCode_Remove Duplicates from Sorted List II
- Leetcode_remove-duplicates-from-sorted-array
- LeetCode_Remove Duplicates from Sorted Array
- leetcode_Remove Duplicates from Sorted Array
- LeetCode_Remove Duplicates from Sorted Array
- LeetCode_remove-duplicates-from-sorted-array
- LeetCode_Remove Duplicates from Sorted Array
- Leetcode_remove-duplicates-from-sorted-list (updated c++ and python version)
- Leetcode_Remove Duplicates from Sorted Array II
- Leetcode_Remove Duplicates from Sorted Array II
- LeetCode_Remove Duplicates from Sorted Array II
- leetcode_Remove Duplicates from Sorted Array II
- Leetcode_remove-duplicates-from-sorted-array-ii (c++ and python version)
- Remove Duplicates from Sorted List
- Remove Duplicates from Sorted List
- Linux下的socket网络编程(1)
- js获得当前时间前后n天、n月、n年日期的一个简单实现
- ffmpeg库音频解码示例
- The features of the film faced plywood
- kgoooeisaui
- LeetCode_Remove Duplicates from Sorted List
- Android中内容观察者的使用---- ContentObserver类详解
- FFMpeg框架代码阅读
- day 020 Pinunlock NavigationController
- 星际穿越观后感
- OpenCV成长之路(9):特征点检测与图像匹配
- 关于选择程序员作为职业的一些感悟和反思----致张君和我自己
- oracle存储过程2
- linux下 oracle常用命令