力扣 83.删除排序链表中的重复元素

一、题目

二、思路

需要比较当前节点与前一个节点的 val 是否相同,相同则删除当前节点。(如果是比较当前节点和下一节,需要检查 cur.next 是否为空)

三、代码

java 复制代码
/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode() {}
 *     ListNode(int val) { this.val = val; }
 *     ListNode(int val, ListNode next) { this.val = val; this.next = next; }
 * }
 */
class Solution {
    public ListNode deleteDuplicates(ListNode head) {
        if (head == null || head.next == null) {
            return head;
        }
        ListNode pre = head;
        ListNode cur = head.next;
        while (cur != null) {
            if (cur.val == pre.val) {
                pre.next = cur.next;
            } else {
                pre = cur;
            }
            cur = cur.next;
        }
        return head;
    }
}
java 复制代码
class Solution {
    public ListNode deleteDuplicates(ListNode head) {
        if (head == null) {
            return head;
        }
        ListNode cur = head;
        while (cur.next != null) {
            if (cur.val == cur.next.val) {
                cur.next = cur.next.next;
            } else {
                cur = cur.next;
            }
        }
        return head;
    }
}
相关推荐
liuyao_xianhui21 小时前
优选算法_两数之和_位运算_C++
java·开发语言·数据结构·c++·算法·链表·动态规划
靠沿21 小时前
【优选算法】专题十六——BFS解决最短路径问题
redis·算法·宽度优先
博风21 小时前
算法:双指针解:盛最多水的容器
算法·leetcode
夏乌_Wx1 天前
图 | 3道LeetCode常见笔试、面试题汇总
算法
ZPC82101 天前
PPO训练小车
人工智能·算法·机器人
阿Y加油吧1 天前
力扣打卡day05——找到字符串中所有字母异位词、和为K的子数组
leetcode
bksczm1 天前
二分查找的细则(binary search)
算法
A923A1 天前
【洛谷刷题 | 第三天】
算法·二分·洛谷·pair