本文共 772 字,大约阅读时间需要 2 分钟。
存在一个按升序排列的链表,给你这个链表的头节点 head
,请你删除所有重复的元素,使每个元素 只出现一次 。
返回同样按升序排列的结果链表。
借用数据结构中在链表中删除元素的思想,在本题中给定的链表是排好序的,所以重复的元素在链表中肯定是连续的。声明一个移动指针cur用来遍历有序链边,当cur.val=cur.next.val,只需要将cur的next指针指向cur的next的next就完成了删除的目的。
class Solution { public ListNode deleteDuplicates(ListNode head) { //特殊情况判断 if(head == null){ return head; } //指定cur指针指向头部head ListNode cur =head; while(cur!=null && cur.next!=null){ //当前指针指向的值如果与该值的下一个值相等,将当前值的next的next赋值给next if(cur.val==cur.next.val){ cur.next = cur.next.next; } else{ //如果当前指针的下一个值与当前值不相等,则指针向后移一位 cur = cur.next; } } return head; }}
转载地址:http://ulgki.baihongyu.com/