zoukankan      html  css  js  c++  java
  • 删除链表中重复的结点(剑指offer)

    题目描述

    在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5
    方法一:递归
    两种情况,如果是重复结点怎么办?遇到了就跳过,返回重复节点的下一个结点。
    遇到不重复结点?遇到不重复结点直接连上。
    /*
     public class ListNode {
        int val;
        ListNode next = null;
    
        ListNode(int val) {
            this.val = val;
        }
    }
    */
    public class Solution {
        public ListNode deleteDuplication(ListNode pHead) {
            if(pHead==null||pHead.next==null) return pHead;
            if(pHead.val==pHead.next.val){
                ListNode pNode=pHead;
                while (pNode!=null && pNode.val==pHead.val){
                    pNode=pNode.next;
                }
                return deleteDuplication(pNode);
            }else {
                pHead.next=deleteDuplication(pHead.next);
                return pHead;
            }
        }
    }
    苟有恒,何必三更眠五更起;最无益,莫过一日暴十日寒。
  • 相关阅读:
    pxe基于虚拟机的自启动
    time & datetime
    python文件读写操作
    lambda与常用内置函数
    python基础
    python day2:python 初识(二)
    mysql select
    python day1:初识Python(一)
    linux命令总结
    lvs/dr配置
  • 原文地址:https://www.cnblogs.com/shaer/p/10714153.html
Copyright © 2011-2022 走看看