leetCode 82.Remove Duplicates from Sorted List II (删除排序

Given a sorted linked list, delete all nodes that have duplicate numbers, leaving onlydistinctnumbers from the original list.

For example,Given1->2->3->3->4->4->5, return1->2->5.Given1->1->1->2->3, return2->3.

思路:这个题在刚开始做的时候想的有点,怎么都没办法正确解出。后面把代码全部删除重写,思路是记录当前节点p=head,然后head往下遍历,当head的值不等于head.next的值时,结束。比较p==head,相等说明没有重复,连接上;不相等说明有重复,跳过即可。

具体代码如下:

/** * Definition for singly-linked list. * public class ListNode { *int val; *ListNode next; *ListNode(int x) { val = x; } * } */public class Solution {public ListNode deleteDuplicates(ListNode head) {ListNode first = new ListNode(0);ListNode last = first;ListNode p = head;while(head != null){while(head.next != null){//p不动,head后移直到head.next与p不相等if(p.val == head.next.val){head = head.next;//相等循环}else{break;//不相等结束}}if(p == head){//只有一个last.next = p;//添加last = last.next;}p = head = head.next;//有多个则不添加last.next = null;//去掉关联}return first.next;}}

版权声明:本文为博主原创文章,,未经博主允许不得转载。

于是,月醉了,夜醉了,我也醉了。

leetCode 82.Remove Duplicates from Sorted List II (删除排序

相关文章:

你感兴趣的文章:

标签云: