《剑指offer》-删除单链表中重复的结点
2018-02-06 10:12
253 查看
/* * 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 * 例如,链表1->2->3->3-4->4->5 处理后为 1->2->5 * 递归思想 */ class ListNode { int val; ListNode next = null; ListNode(int val){ this.val = val; } } public class DeleteDuplication { //递归法 public ListNode deleteDuplication(ListNode pHead) { if(pHead == null || pHead.next == null) { return pHead; } if(pHead.val == pHead.next.v 4000 al) { ListNode node = pHead.next; //找到与头结点值相同的所有结点,直到出现一个与头结点值不等的一个结点,把它赋给头结点 while(node != null && node.val == pHead.val) { node = node.next; } pHead = deleteDuplication(node); } else { pHead.next = deleteDuplication(pHead.next); } return pHead; } public static void main(String[] args) { ListNode node = new ListNode(1); node.next = new ListNode(2); node.next.next = new ListNode(3); node.next.next.next = new ListNode(3); node.next.next.next.next = new ListNode(4); ListNode node2 = new DeleteDuplication().deleteDuplication(node); while(node2 != null) { System.out.println(node2.val); node2 = node2.next; } } }
相关文章推荐
- 《剑指Offer》学习笔记--面试题57:删除链表中重复的结点
- 剑指offer——删除链表中重复的结点
- 剑指offer--面试题57:删除链表中重复的结点
- 剑指offer:删除链表中重复的结点
- 剑指offer-面试题57:删除链表中重复的结点
- 剑指offer(53)-删除链表中重复的结点
- 《剑指offer》:[57]删除链表中重复的结点
- 《剑指offer》——删除链表中重复的结点
- 剑指offer 删除链表中重复的结点
- 《剑指offer》面试题57 删除链表中重复的结点 C++ 实现 以及 错误总结 (指针问题)!!
- 剑指offer-面试题57-删除链表中重复的结点
- 剑指offer(四十三)之删除链表中重复的结点
- 剑指Offer系列-面试题57:删除链表中重复的结点
- 剑指offer(c++)——删除链表中重复的结点
- 《剑指offer》——删除链表中重复的结点
- 《剑指offer》:删除链表中重复的结点
- 《剑指offer》-删除链表中重复的结点
- 剑指offer 面试题57 删除链表中重复的结点
- 《剑指offer》删除链表中重复的结点
- 剑指Offer:删除链表中重复的结点