记录 2021.8.11 删除链表中的重复元素(easy)
题目:
存在一个按升序排列的链表,给你这个链表的头节点 head ,请你
返回同样按升序排列的结果链表。
示例 1:
输入:head = [1,1,2]
输出:[1,2]
示例 2:
输入:head = [1,1,2,3,3]
输出:[1,2,3]
提示:
链表中节点数目在范围 [0, 300] 内
-100 <= Node.val <= 100
题目数据保证链表已经按升序排列
Related Topics 链表
👍 625 👎 0
思路:
用preNode和afterNode来标记要比较的两个结点,当afterNode为空时,退出循环,返回head。
如果两结点的val相等,那么将preNode连接到afterNode.next即可。
如果两者不等,则将preNode和afterNode均向后移动一个结点
代码:
class Solution {
public ListNode deleteDuplicates(ListNode head) {
if(head==null){
return null;
}
ListNode preNode = head;
ListNode afterNode =head.next;
while (preNode!=null){
if(afterNode==null){
break;
}
if(preNode.val==afterNode.val){
preNode.next=afterNode.next;
}else{
preNode=preNode.next;
}
afterNode=afterNode.next;
}
return head;
}
}