剑指offer-18-2. 删除链表中重复的结点

剑指offer-18-2. 删除链表中重复的结点

链表

在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5

剑指offer-18-2. 删除链表中重复的结点

思路:

采用递归的方法查找从头节点开始重复的节点

  • 如果没有重复节点,pHead.next指向deleteDuplication(pHead.next)返回的pHead.next本身
  • 如果有重复节点则pHead.next指向pHead.next.next…next(根据if判断决定)

public class Solution {
    public ListNode deleteDuplication(ListNode pHead)
    {
        //base case
        if (pHead == null || pHead.next == null)
            return pHead;

        ListNode next = pHead.next大专栏
上一篇:剑指offer-面试题6-从头到尾打印链表-链表


下一篇:剑指offer-24.反转链表