leetcode 82. Remove Duplicates from Sorted List II
来源:互联网 发布:python 迭代器的方法 编辑:程序博客网 时间:2024/06/15 13:50
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.
这道题很简答,遇到这种指针操作的题,最重要的就是细心。
代码如下:
/* class ListNode { int val; ListNode next; ListNode(int x) { val = x; } }*/public class Solution { public ListNode deleteDuplicates(ListNode head) { if(head==null || head.next==null) return head; ListNode finalListNode=new ListNode(0); ListNode resIter=finalListNode; ListNode iter=head; while(iter!=null) { ListNode fa=iter; ListNode son=iter.next; //son为null表示列表走到尽头 //fa的value和son的value第一次就不等,表示fa可以直接加入res列表 if(son==null|| fa.val!=son.val) { resIter.next=fa; resIter=resIter.next; resIter.next=null; }else { while(son!=null && fa.val==son.val) { fa=son; son=son.next; } } iter=son; } return finalListNode.next; }}
下面是C++的做法,
代码如下:
#include <iostream>#include <vector>using namespace std;/*struct ListNode{ int val; ListNode *next; ListNode(int x) : val(x), next(NULL) {}};*/class Solution {public: ListNode* deleteDuplicates(ListNode* h) { if (h == NULL || h->next == NULL) return h; ListNode* head = new ListNode(h->val - 2); head->next = h; ListNode* i = head; while (i != NULL) { ListNode* fa = i->next; ListNode* son = fa==NULL?NULL:fa->next; if (son==NULL || fa->val != son->val) i = i->next; else { ListNode* j = fa; while (j != NULL && j->val == fa->val) j = j->next; i->next = j; } } return head->next; }};
阅读全文
0 0
- 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
- [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
- [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
- Leetcode: Remove Duplicates from Sorted List II
- leetcode Remove Duplicates from Sorted List II
- [LeetCode] Remove Duplicates from Sorted List II
- numpy使用记录
- 用python导入原始数据集
- mysql聚簇索引和非聚簇索引以及二级索引
- 继承
- 300. Longest Increasing Subsequence
- leetcode 82. Remove Duplicates from Sorted List II
- 句子逆序
- 请问在命令提示符上运行exe,怎么传入参数,是多个参数?求大神指导
- Scala结合HttpClient实现简单的爬虫
- java的堆,栈,静态代码区(常量区)
- 运行hadoop中的实例wordcount及问题
- Redux中间件对闭包的一个巧妙使用
- 全面理解Javascript的面向对象(一)
- 比特币源码解析(12)