力扣(LeetCode)删除排序链表中的重复元素 个人题解

给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。

这题思路比较简单,同样是快慢针的思路。

用一个整数类型val对应最新的只出现过一次的那个值,

如果节点的下一个节点的值和这个对应则不做别的操作,快针进入下一个,

如果不对应则接到慢针对应的节点上,同时快针慢针都向前一位,整数val设置为新的值,以此类推。

代码如下:

 1 class Solution {
 2     public ListNode deleteDuplicates(ListNode head) {
 3         if (head == null)
 4             return head;
 5         ListNode ret = head;
 6         Integer val = head.val;
 7         while (head.next != null) {
 8             if (head.next.val == val) {
 9                 head.next = head.next.next;
10             } else {
11                 val = head.next.val;
12                 head = head.next;
13             }
14         }
15         return ret;
16     }
17 }
 

猜你喜欢

转载自www.cnblogs.com/axiangcoding/p/10372426.html
今日推荐