问题描述:
Given a sorted linked list, delete all duplicates such that each element appear only once.
For example,
Given 1->1->2
, return 1->2
.
Given 1->1->2->3->3
, return 1->2->3
.
原问题链接:https://leetcode.com/problems/remove-duplicates-from-sorted-list/
问题分析
这个问题和之前讨论过的移除重复元素的问题很接近。它们有一个细微的差别就是在前一个问题中,对于有任何重复的元素,它们将不能包含在结果链表中,而这个是要求重复的元素有一个要包含在结果连表中。虽然有这么一个细微的差别,但是它们的基本解决思路还是很近似的。
我们通过一个临时的ListNode来保存指向head前一个元素,并将它设置为pre。然后将cur = head。这样每次根据cur.next != null的循环去判断cur.val == cur.next.val。如果不相等说明cur的下一个元素就要和当前元素不同了,那么需要将prev.next = cur。在退出循环后要将最后一个元素也链接到链表中来。
详细的代码实现如下:
/** * 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 || head.next == null) return head; ListNode res = new ListNode(0); res.next = head; ListNode pre = res, cur = head; while(cur.next != null) { if(cur.val != cur.next.val) { pre.next = cur; pre = cur; } cur = cur.next; } pre.next = cur; return res.next; } }
相关推荐
python python_leetcode题解之083_Remove_Duplicates_from_Sorted_List
c c语言_leetcode题解之0083_remove_duplicates_from_sorted_list.zip
javascript js_leetcode题解之83-remove-duplicates-from-sorted-list.js
c语言入门 C语言_leetcode题解之83-remove-duplicates-from-sorted-list.c
c c语言_leetcode题解之0082_remove_duplicates_from_sorted_list_ii.zip
javascript js_leetcode题解之82-remove-duplicates-from-sorted-list-ii.js
leetcode 2 sum c LeetCode 帮助文档 帮助文档存放在Help文件夹下。 文件名 文件描述 链接 complexitypython.txt Python的一些常规操作的复杂度统计 题目清单 Array(数组) ID Difficulty Title Java Python 1 Easy ...
Remove Duplicates from Sorted List II题目: | 源码:标签:单向链表难度:中等 / Medium146. LRU Cache题目: | 源码:标签:哈希表,双向链表难度:中等 / Medium212. Word-Search-II题目: | 英文站源码:./...
II(Remove Duplicates from Sorted List II) 2018.9.27 重建二叉树(Rebuild Binary Tree) 2018.9.28 把字符串转换成整数(Convert a string to an integer) 2018.10.8 树的子结构(Substructure of the tree) ...
leetcode写题闪退 #*的多少代表此题的有意思程度 有几题第一次写的时候思绪比较混乱: *****Regular Expression Matching 2014.10.29 对于Find Minimum in Rotated Sorted Array II 和 Find Minimum in Rotated ...
leetcode python 001 LeetCode 建立两个个主要资料夹(题目收集、学习内容)+一个玩整的README整理 题目 主要以Python记录于VScode上 先记录头150题 学习 以JupyterNotebook为主 纪录各种资料结构、演算法等 ...
remove-duplicates-from-sorted-list ii 83 删除排序链表中的重复元素 remove-duplicates-from-sorted-list 86 分隔链表 partition-list 92 反转链表 II reverse-linked-list-ii(Reverse a Sub-list) 141 环形链表...
* 删除链表中的重复项(Remove Duplicates from Sorted Array):删除链表中的重复项。 * 从列表末尾删除第N个节点(Remove Nth Node From End of List):从链表末尾删除第N个节点。 5. 栈和队列操作: * 有效的...
- **Remove Duplicates from Sorted List**:从已排序的链表中移除重复项。 - **Merge Sorted Lists**:合并两个已排序的链表。 - **Reverse Linked List**:反转链表。 - **Swap Nodes in Pairs**:交换链表中...
leetcode 答案leetcode-java leetcode.com 的 Java 答案 ================索引================ com.leetcode.array Search a 2D Matrix Spiral Matrix com.leetcode.list Linked List Cycle Linked List Cycle II ...
83.删除排序链表中的重复元素 (Remove Duplicates from Sorted List) 88.合并两个有序数组 (Merge Sorted Array) 100.相同的树 (Same Tree) 104.二叉树的最大深度 (Maximum Depth of Binary Tree) 118.杨辉三角 ...
O(m+n) time, O(m+n) sapce.*0026 Remove Duplicates from Sorted Array使用双指针,一个快指针,一个慢指针。开始时,两个指针都指向首元素。当两指针元素值相同时,快指针+1;当两指针元素不同时,慢
leetcode 浇花力扣解决方案 简单的 #0001 - Two Sum #0007 - Reverse Integer #0009 - Palindrome Number #0035 - Search Insert Position #0058 - Length of Last Word #0066 - Plus One #0083 - Remove Duplicates...
26.Remove Duplicates from Sorted Array 53.Maximum Subarray 70.Climbing Stairs 121.Best Time to Buy and Sell Stock 122.Best Time to Buy and Sell Stock II 123.Best Time to Buy and Sell Stock III 141....
83-删除排序链表中的重复元素:remove-duplicates-from-sorted-list 92-反转链表II:reverse-linked-listt-ii 141-环形链表:linked-list-cycle 142-环形链表:linked-list-cycle-ii 160-相交链表:intersection-of-two-...