码迷,mamicode.com
首页 > 编程语言 > 详细

leetcode 83 删除排序链表中的重复元素

时间:2019-09-19 21:28:37      阅读:86      评论:0      收藏:0      [点我收藏+]

标签:list   ext   有一个   com   move   head   pre   ||   ati   

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

示例 1:

输入: 1->1->2
输出: 1->2
示例 2:

输入: 1->1->2->3->3
输出: 1->2->3

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/remove-duplicates-from-sorted-list
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

 

 1 public class _83 {
 2     public ListNode deleteDuplicates(ListNode head) {
 3         if (head == null || head.next == null) return head; // 空链表或者只有一个节点的链表
 4         if (head.next.next == null && head.val == head.next.val) return head.next; // 链表只有有两个相同的节点
 5 
 6         ListNode p = head;
 7         ListNode q = p.next;
 8         while (true){
 9             while (q != null && p.val == q.val)
10                 q = q.next;
11             if (p.next != q){
12                 p.next = q;
13                 p = q;
14             } else {
15                 p = p.next;
16             }
17             if (q == null)
18                 break;
19             q = p.next;
20         }
21         return head;
22     }
23 
24     public static void main(String[] args) {
25         int[] elems = {1,1};
26         ListNode head = _82.create(elems);
27         ListNode p = new _83().deleteDuplicates(head);
28 
29         while (p != null){
30             System.out.print(p.val+", ");
31             p = p.next;
32         }
33     }
34 }

 

leetcode 83 删除排序链表中的重复元素

标签:list   ext   有一个   com   move   head   pre   ||   ati   

原文地址:https://www.cnblogs.com/yfs123456/p/11552274.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!