博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
删除排序链表中重复的结点
阅读量:2350 次
发布时间:2019-05-10

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

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

思路:用递归删除,遇到相同的往后走,返回第一个不相同的节点

/* public class ListNode {    int val;    ListNode next = null;    ListNode(int val) {        this.val = val;    }}*/public class Solution {    public ListNode deleteDuplication(ListNode pHead)    {		if(pHead==null)            return null;        if(pHead!=null && pHead.next==null)            return pHead;        ListNode current;        if(pHead.val==pHead.next.val){            current=pHead.next.next;            while (current != null && current.val==pHead.val)                current=current.next;            return deleteDuplication(current);//继续删除后面的重复节点        }else{            current=pHead.next;            pHead.next=deleteDuplication(current);//这里返回的就是第一个不相同的节点            return pHead;        }    }}

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

你可能感兴趣的文章
ZooKeeper 配置
查看>>
向EXCEL模板文件中写入数据和插入新行
查看>>
怎样用java生成GUID与UUID
查看>>
程序员生存定律--管理向左,技术向右
查看>>
SQLite学习手册(索引和数据分析/清理)
查看>>
数据库索引的作用和优点缺点
查看>>
Protocol Buffer技术详解(语言规范)
查看>>
Protocol Buffer技术详解(C++实例)
查看>>
Protocol Buffer技术详解(Java实例)
查看>>
Protocol Buffer技术详解(数据编码)
查看>>
速查笔记(Linux Shell编程<上>
查看>>
速查笔记(Linux Shell编程<下>
查看>>
Linux Shell常用命令总结
查看>>
Linux Shell常用技巧(一)
查看>>
Linux Shell常用技巧(二)
查看>>
Linux Shell常用技巧(三)
查看>>
Linux Shell常用技巧(四)
查看>>
Linux Shell常用技巧(五)
查看>>
Linux Shell常用技巧(六)
查看>>
Linux Shell常用技巧(七)
查看>>