(牛客网—牛客题霸算法篇—NC25)
题目描述删除给出链表中的重复元素(链表中元素从小到大有序),使链表中的所有元素都只出现一次
例如:
给出的链表为1→1→2,返回1→2.
给出的链表为1→1→2→3→3,返回1→2→3.
Java实现
由于链表是有序的,因此我们可以定义两个指针,分别为node和nextnode,分别指向前后两个节点。
当两个节点的值相等时,删除后一个节点。
要注意判断链表越界的情况!!
代码实现import java.util.*; public class Solution { public ListNode deleteDuplicates (ListNode head) { // write code here if(head==null||head.next==null) return head; ListNode node=head; ListNode temp=node; ListNode nextnode=node.next; while(nextnode!=null){ if(node.val==nextnode.val){ if(nextnode.next==null){ node.next=null; } nextnode=nextnode.next; node.next=nextnode; }else{ node=nextnode; nextnode=nextnode.next; } } return temp; } }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)