题解 | #牛群排列去重# Java

牛群排列去重

https://www.nowcoder.com/practice/8cabda340ac6461984ef9a1ad66915e4

import java.util.*;

/*
 * public class ListNode {
 *   int val;
 *   ListNode next = null;
 *   public ListNode(int val) {
 *     this.val = val;
 *   }
 * }
 */

public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param head ListNode类
     * @return ListNode类
     */
    public ListNode deleteDuplicates (ListNode head) {
        // write code here
        // 将当前节点和前一个节点初始化为头节点
        ListNode cur = head;
        ListNode pre = head;

        while (cur != null) {
            // 如果当前节点的下一个节点为空,表示到达链表尾部,结束循环
            if (cur.next == null)
                break;

            // 如果当前节点的值等于下一个节点的值,说明有重复节点
            if (cur.val == cur.next.val) {
                pre = cur; // pre节点指向当前节点

                while (true) {
                    // 如果当前节点的下一个节点为空或者当前节点的值小于下一个节点的值,
                    // 说明找到了重复节点的最后一个节点,将pre节点的next指向下一个节点,并结束内层循环
                    if (cur.next == null || cur.val < cur.next.val) {
                        pre.next = cur.next;
                        break;
                    }
                    cur = cur.next; // 继续遍历下一个节点
                }
            }
            cur = cur.next; // 当前节点指向下一个节点,继续遍历
        }
        return head; // 返回删除重复节点后的链表头节点
    }
}

主要考察了链表的操作和节点的删除。通过使用两个指针 curpre 来遍历链表,找到重复的节点,并删除重复节点中的所有节点

详细解释如下:

  • 初始化 cur 和 pre 为头节点,开始遍历链表。
  • 如果 cur 的下一个节点为空,说明到达链表尾部,结束循环。
  • 如果 cur 的值等于下一个节点的值,说明有重复节点。将 pre 指向 cur,然后进入内层循环。在内层循环中,判断当前节点 cur 的下一个节点是否为空或者当前节点的值小于下一个节点的值。如果是,说明找到了重复节点的最后一个节点,将 pre 的 next 指向下一个节点,并结束内层循环。如果不是,继续遍历下一个节点。
  • cur 指向下一个节点,继续外层循环。
  • 返回删除重复节点后的链表头节点。
全部评论

相关推荐

不愿透露姓名的神秘牛友
今天 20:55
点赞 评论 收藏
分享
虽然大家都在劝退读研,说读研以后也是打工,不如本科直接去打工,但随着现在研究生越来越多,很多企业招聘要求就会变成研究生起招,本科投递简历就会被卡,横向比较时也会因为"本科学历比不上研究生学历"被筛掉,而且你没发现劝退读研的基本都是读完研的人吗?而且进体制、国企等,研究生也比本科生升的快,他们拿着研究生文凭劝你一个本科生,可别当真了
球1个offer:每个行业都是不一定的,例如计算机开发岗,只要是92学历,完全可以冲互联网大厂,没进去抛开运气因素,就是不够努力,准备的晚没有实习等等。计算机算法岗还是要读研的,研究生是基本要求。现在太多人无脑考研了,因为本科秋招春招啥都没准备过,只能读研
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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