删除排序链表的重复元素(Java实现)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了删除排序链表的重复元素(Java实现),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1976字,纯文字阅读大概需要3分钟。
内容图文
![删除排序链表的重复元素(Java实现)](/upload/InfoBanner/zyjiaocheng/755/8e22dfd104a94b3288485e4658e0862a.jpg)
1.删除排序链表的重复元素I
1.1题目:
给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。
示例 1:
输入: 1->1->2
输出: 1->2
示例 2:
输入: 1->1->2->3->3
输出: 1->2->3
代码结果:
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */ class Solution { public ListNode deleteDuplicates(ListNode head) { ListNode p = head; while(p != null){ if(p.next != null && p.val == p.next.val){ p.next = p.next.next; }else{ p = p.next; } } return head; } }
2.删除排序链表的重复元素II
2.1题目:
给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字。
示例 1:
输入: 1->2->3->3->4->4->5
输出: 1->2->5
示例 2:
输入: 1->1->1->2->3
输出: 2->3
代码结果:
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */ class Solution { public ListNode deleteDuplicates(ListNode head) { ListNode dummy = new ListNode(0); dummy.next = head; ListNode p = head; ListNode q = dummy; boolean isDel = false; while(p != null){ if(p.next != null && p.val == p.next.val ){ isDel = true; p.next = p.next.next; }else{ p = p.next; if(isDel){ q.next = p; isDel = false; }else{ q = q.next; } } } return dummy.next; } }
3.分隔链表:
3.1题目:
给定一个链表和一个特定值 x,对链表进行分隔,使得所有小于 x 的节点都在大于或等于 x 的节点之前。
你应当保留两个分区中每个节点的初始相对位置。
示例:
输入: head = 1->4->3->2->5->2, x = 3
输出: 1->2->2->4->3->5
代码结果:
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */ class Solution { public ListNode partition(ListNode head, int x) { ListNode dummy1 = new ListNode(-1); ListNode dummy2 = new ListNode(-1); ListNode p1 = dummy1; ListNode p2 = dummy2; while(head != null){ if(head.val < x){ p1.next = head; p1 = p1.next; }else{ p2.next = head; p2 = p2.next; } head = head.next; } p2.next = null; p1.next = dummy2.next; //dummy2.next = null; return dummy1.next; } }
内容总结
以上是互联网集市为您收集整理的删除排序链表的重复元素(Java实现)全部内容,希望文章能够帮你解决删除排序链表的重复元素(Java实现)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。