一天一道LeetCode

本系列文章已全部上传至我的github,地址:ZeeCoder‘s Github

欢迎大家关注我的新浪微博,我的新浪微博

欢迎转载,转载请注明出处

(一)题目

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.
 * 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* newHead = NULL;//新链表头
         ListNode* newtail = NULL;//新链表位
         ListNode* p = head;
         bool ishead = true;//确定新链表的头
         while(p!=NULL)
         {
             ListNode* pnext = p->next;
             int count = 1;
             while(pnext!=NULL&&pnext->val==p->val) {//后续节点与p是否重复
                 count++;
                 pnext = pnext->next;
             }
             if(count==1){//等于1代表没有重复
                 if(ishead) {newHead = p;newtail = newHead;newtail->next=NULL;ishead =false;}//头结点需要特殊处理
                 else {
                     newtail->next = p;
                     newtail = newtail->next;
                     newtail->next=NULL;//这里注意一定要将尾节点的next指向NULL,不然就指向原链表的p的下一个了
                 }
             }
             p = pnext;
         }
         return newHead;
    }
};

最新文章

  1. laravel框架总结(十二) -- 关联关系
  2. github:如何获取项目源代码
  3. Python 学习---------Day1
  4. windows server 远程连接设置
  5. [深入浅出WP8.1(Runtime)]数据绑定的基础
  6. 未知的系统错误(The transaction is no longer active - status: 'Committed'. No further JDBC access is allowed within this transaction.)
  7. spring相关资源
  8. PHPCMS-首页的二级导航、轮播效果
  9. Redis数据库?-Redis的Virtual Memory介绍(转)
  10. 程序员,一起玩转GitHub版本控制,超简单入门教程 干货2
  11. 制作Android Demo GIF:程序演示效果GIF图录制
  12. c指针点滴-指针与类型
  13. django开发简易博客(三)
  14. 我在vs文本编辑中常用的快捷键----常更新
  15. android系统添加预置APP(so库自动释放)
  16. C#进阶系列——WebApi 跨域问题解决方案:CORS(转载)
  17. Java 基础 集合框架
  18. Linux下Mysql安装(RPM安装)
  19. 11.2.0.4单实例DRCP(Database Resident Connection Pooling)简单测试
  20. Android,XML解析

热门文章

  1. Struts中的找不到StringUtils异常
  2. 最小费用最大流(luogu P3381 【模板】最小费用最大流)
  3. FJUT寒假作业第二周G题解快速幂
  4. jQuery 效果 – 动画
  5. 安卓 新版本 获取wifi状态网络是否可用等
  6. 20160214.CCPP体系详解(0024天)
  7. Android简易实战教程--第三十九话《简单的模糊查询》
  8. RxJava(十一)defer操作符实现代码支持链式调用
  9. 用类模拟C风格的赋值+返回值
  10. GIF动态图制作