题解 | #删除链表中重复的结点#

删除链表中重复的结点

https://www.nowcoder.com/practice/fc533c45b73a41b0b44ccba763f866ef

import java.util.*;
/*
 public class ListNode {
    int val;
    ListNode next = null;

    ListNode(int val) {
        this.val = val;
    }
}
*/
public class Solution {
    public ListNode deleteDuplication(ListNode pHead) {
        /*
            参考一个C的大佬写递归
         */
        if (pHead==null || pHead.next==null)
            return pHead;
        // 当前节点不重复,递归调用处理下一个节点后返回当前节点
        if (pHead.val!=pHead.next.val){
            pHead.next = deleteDuplication(pHead.next);
            return pHead;
        }
        else{
            // 当前节点重复,跳过所有重复节点
            ListNode p = pHead.next;
            while (p!=null && p.val==pHead.val){
                p = p.next;
            }
            return deleteDuplication(p);
        }
    }
}

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务