Remove Duplicates from Sorted List II
来源:互联网 发布:帝国cms图片集分割 编辑:程序博客网 时间:2024/09/21 08:56
这道题刚开始感觉有点复杂,后面还是做出来了。 不过看了网上的答案,有更易于思考的角度
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
.
# Definition for singly-linked list.# class ListNode:# def __init__(self, x):# self.val = x# self.next = Noneclass Solution: # @param head, a ListNode # @return a ListNode def deleteDuplicates(self, head): if head==None: return head prehead = ListNode(10**22) prehead.next = head precur,cur = prehead,head while cur!=None: while (cur.next!=None and precur.next.val==cur.next.val): cur = cur.next if precur.next==cur: precur = precur.next else: precur.next = cur.next cur = cur.next return prehead.next
C++
/** * 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){ return head; } ListNode* prehead = new ListNode(100000000); prehead->next = head; ListNode* precur; ListNode* cur; precur = prehead; cur = prehead->next; while (cur!=NULL){ while(cur->next!=NULL && precur->next->val==cur->next->val){ cur = cur->next; } if (precur->next==cur){ precur = precur->next; }else{ precur->next = cur->next; } cur = cur->next; } return prehead->next; }};
总结:
1. 用指针时 ListNode* prehead = new ListNode(100000)
用 new 这个关键字
0 0
- LeetCode: Remove Duplicates from Sorted List II
- Remove Duplicates from Sorted List II
- [Leetcode] Remove Duplicates from Sorted List II
- LeetCode: Remove Duplicates from Sorted List II
- [Leetcode] Remove Duplicates from Sorted List II
- [leetcode] Remove Duplicates from Sorted List II
- [LeetCode] Remove Duplicates from Sorted List II
- Remove Duplicates from Sorted List II
- [leetcode] Remove Duplicates from Sorted List II
- Remove Duplicates from Sorted List II
- Remove duplicates from sorted list II
- Remove Duplicates from Sorted List II
- Remove Duplicates from Sorted List II
- [LeetCode]Remove Duplicates from Sorted List II
- Remove Duplicates from Sorted List II
- Remove Duplicates from Sorted List II
- Remove Duplicates from Sorted List II
- [leetcode]Remove Duplicates from Sorted List II
- 面向对象的三个基本特征
- 百度地图之key创建方法
- 字符串截断输出
- 泛型
- PCB电路设计个人经验总结
- Remove Duplicates from Sorted List II
- Set集合
- The python challenge 02————字典、读写文件、raw string
- 黑马程序员-----JAVA面向对象(一)
- Map集合
- Linux驱动基本理论之——异步通知
- 文件和异常
- 03、maven依赖特性
- eclipse下maven、svn插件的安装