博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
剑指offer——56.删除链表中重复的结点
阅读量:3581 次
发布时间:2019-05-20

本文共 771 字,大约阅读时间需要 2 分钟。

题目描述

在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5

代码

思路:需要三个指针,第一个指针first的next指向头结点,第二个指针pre指向first,确保每次指向的是重复结点的前一个结点,第三个指针head来遍历,遇到重复结点,则向后,直到找到当前结点不等于下一个结点时,将pre的next指向head。

function deleteDuplication(pHead){    // write code here    if(pHead==null||pHead.next==null) return pHead;    var first={        val:0,        next:pHead    }    var head=pHead,pre=first;    while(head!=null&&head.next!=null){        if(head.val==head.next.val){            while(head.next&&head.next.val==head.val){                head=head.next;                           }            pre.next=head.next;        }else{            pre.next=head;            pre=pre.next;        }        //pre=head;        head=head.next;    }    return first.next;}

转载地址:http://iwxgj.baihongyu.com/

你可能感兴趣的文章
linux VM虚拟机可以ping通主机,但主机无法ping通虚拟机
查看>>
C++ 中Struct与typedef struct总结
查看>>
WNetAddConnection2调用失败,错误码1200/1312
查看>>
POI读写Excel的基本使用
查看>>
淘宝网站的架构演进
查看>>
设置zookeeper开机自启动流程
查看>>
CentOS安装mysql5.7的教详细流程
查看>>
项目整合微信扫码登录功能
查看>>
分布式文件系统FastDfs的搭建
查看>>
Springboot项目利用Java客户端调用FastDFS
查看>>
全文检索工具elasticsearch的安装和简单介绍
查看>>
利用Kibana学习全文检索工具elasticsearch
查看>>
SpringBoot在Test测试类或自定义类中通过@Autowired注入为null
查看>>
使用docker搭建YAPI服务
查看>>
西南科技大学OJ题 邻接表到邻接矩阵1056
查看>>
西南科技大学OJ题 有向图的出度计算1057
查看>>
西南科技大学OJ题 有向图的最大出度计算1059
查看>>
西南科技大学OJ题 带权有向图计算1063
查看>>
oracle主键自增触发器编写
查看>>
String与StringBuilder与StringBuffer三者的差别
查看>>