83. 删除排序链表中的重复元素
Posted 易小顺
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了83. 删除排序链表中的重复元素相关的知识,希望对你有一定的参考价值。
算法记录
题目:
存在一个按升序排列的链表,给你这个链表的头节点 head ,请你删除所有重复的元素,使每个元素 只出现一次 。
返回同样按升序排列的结果链表。
说明
一、题目
存在一个按升序排列的链表,给你这个链表的头节点 head ,请你删除所有重复的元素,使每个元素 只出现一次 。
返回同样按升序排列的结果链表。。
二、分析
- 由于是已经排序完成的链表,其重复的元素必然是挨在一起的,只需要要判断上下两个节点的值相等于否即可判断出来是否是重复元素。
- 如果两个节点值相同,即可将当前的下一个节点往后走一步,越过下一个相同的节点,即可实现节点的删除。
- 不相同时正常让指针往下走,继续遍历链表的节点,知道没有下一个节点可指向时完成节点的遍历。
class Solution {
public ListNode deleteDuplicates(ListNode head) {
if(head == null || head.next == null)
return head;
ListNode temp = head;
while(temp.next != null) {
if(temp.val == temp.next.val)
temp.next = temp.next.next;
else
temp = temp.next;
}
return head;
}
}
总结
熟悉链表的表现和操作
以上是关于83. 删除排序链表中的重复元素的主要内容,如果未能解决你的问题,请参考以下文章