题目给定一个排序链表 , 删除所有重复的元素 , 使得每个元素只出现一次 。
示例 1:
输入: 1->1->2输出: 1->2
【删除列表中重复的元素算法】示例 2:
输入: 1->1->2->3->3输出: 1->2->3
思路这是一个简单的问题 , 仅测试你操作列表的结点指针的能力 。由于输入的列表已排序 , 因此我们可以通过将结点的值与它之后的结点进行比较来确定它是否为重复结点 。如果它是重复的 , 我们更改当前结点的 next 指针 , 以便它跳过下一个结点并直接指向下一个结点之后的结点 。
代码/**
* Definition for singly-linked list.
* function ListNode(val) {
* this.val = val;
* this.next = null;
* }
*/
/**
* @param {ListNode} head
* @return {ListNode}
*/
var deleteDuplicates = function(head) {
if (!head) {
return null
}
let current = head
while(current.next) {
if (current.val === current.next.val) {
current.next = current.next.next
} else {
current = current.next
}
}
return head
};
推荐阅读
- Win10将强制删除Flash?教你屏蔽Flash删除补丁
- 六大茶山小程序上线,古六大茶山古六大茶山系列之莽枝古树茶
- 冰岛五寨古树茶特点,名山名寨古树茶系列之南迫老寨
- 从Linux源码看Socket的listen及连接队列
- nba2k21封面人物 nba2k21封面是谁
- 请停止在Python中无休止使用列表
- temp文件夹可以删除吗?
- 冰岛南迫古树茶泡法,名山名寨古树茶系列之南迫老寨
- 吉列大虾的做法
- 吉列花技的做法