题解 | #升序链表的删除#

升序链表的删除

https://www.nowcoder.com/practice/22243a45ec9b425ea608d5fe3f6bb1f6?tpId=363&tqId=10618538&ru=/exam/oj&qru=/ta/super-company23Year/question-ranking&sourceUrl=%2Fexam%2Foj

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) {
        ListNode current = head; // 当前节点
        while (current != null && current.next != null) {
            if (current.val == current.next.val) {
                current.next = current.next.next; // 删除下一个节点
            } else {
                current = current.next; // 继续遍历下一个节点
            }
        }
        return head; // 返回头节点
    }
}

本题知识点分析:

1.链表遍历

2.节点赋值

本题解题思路分析:

1.如果发现值重复,那么让当前节点指向下下个节点,就相当于删除

2.如果不重复,那么就继续遍历下一个节点

本题使用编程语言: Java

全部评论

相关推荐

仁者伍敌:牛子这些人还会点一个自动回复,boss都不带回复的
点赞 评论 收藏
分享
牛客38347925...:9,2学生暑期实习失利开始投小厂,给这群人整自信了
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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