博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
82. Remove Duplicates from Sorted List II
阅读量:4624 次
发布时间:2019-06-09

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

题目

原始地址:

e4ad2195gy1fff3d3bw2bj20xk05xaao.jpg

/** * Definition for singly-linked list. * public class ListNode { *     int val; *     ListNode next; *     ListNode(int x) { val = x; } * } */public class Solution {    public ListNode deleteDuplicates(ListNode head) {            }}

描述

删除给定单链表中所有含有重复值的节点,只保留值唯一的节点。

分析

本题的难点在于如何在遍历链表的过程当中记录之前的值以及是否出现过重复的情况,普通的写法会比较繁琐,给出下面两个解法。

解法一使用递归,如果当前值重复就一直跳过,处理出现下一个值时的部分,如果当前值唯一就先把当前值指向后面部分处理的结果,再返回当前值。
解法二使用循环。最精髓的部分在于用prev记录上一个值出现的最后一个节点,用prev.next == curr这个条件来判断是否出现重复值的情况。

解法1

/** * Definition for singly-linked list. * public class ListNode { *     int val; *     ListNode next; *     ListNode(int x) { val = x; } * } */public class Solution {    public ListNode deleteDuplicates(ListNode head) {        if (head == null) {            return null;        }        if (head.next != null && head.val == head.next.val) {            while (head.next != null && head.val == head.next.val) {                head = head.next;            }            return deleteDuplicates(head.next);        } else {            head.next = deleteDuplicates(head.next);            return head;        }    }}

解法2

/** * Definition for singly-linked list. * public class ListNode { *     int val; *     ListNode next; *     ListNode(int x) { val = x; } * } */public class Solution {    public ListNode deleteDuplicates(ListNode head) {        ListNode curr = head, newHead = new ListNode(0), prev = newHead, newCurr = newHead;        newHead.next = head;        while (curr != null) {            while (curr.next != null && curr.val == curr.next.val) {                curr = curr.next;            }            if (prev.next == curr) {                newCurr.next = curr;                newCurr = newCurr.next;            }            prev = curr;            curr = curr.next;        }        newCurr.next = null;        return newHead.next;    }}

转载于:https://www.cnblogs.com/fengdianzhang/p/6831465.html

你可能感兴趣的文章
Dubbo的架构
查看>>
HDU5108
查看>>
HTML5在VS2010中的智能提示
查看>>
BZOJ2735 : 世博会
查看>>
P2258 子矩阵(dp)
查看>>
密度峰值聚类算法——心得总结
查看>>
div中字符串自动换行
查看>>
DevExpress v17.2新版亮点—WPF篇(四)
查看>>
Kendo UI使用教程:CDN服务
查看>>
浮躁的过去,开启的项目管理之路(三)
查看>>
Codeforces441C_Valera and Tubes(暴力)
查看>>
二层交换机原理
查看>>
关于编码和字库
查看>>
shell 脚本启动 flask
查看>>
mysql触发器
查看>>
iis设置局域网访问,Context.Request.Url.Authority老是取出为localhost问题
查看>>
并发编程 16—— 线程池 之 原理二
查看>>
Python学习笔记-DAY-4
查看>>
WPF可视化一个简单的2D世界
查看>>
linux学习:CentOS、Mac上SSH的设置以及SceureCRT中的文件上传下载
查看>>