专栏首页赵俊的Java专栏删除排序链表中的重复元素

删除排序链表中的重复元素

题意

给定一个排序链表,删除所有重复的元素每个元素只留下一个。

样例

给出 1->1->2->null,返回 1->2->null

给出 1->1->2->3->3->null,返回 1->2->3->null

思路

设置一个指针指向排序链表的头结点,遍历链表,若当前元素与下一个元素相同,直接将下一个元素的 next 指向下下个即可。

代码实现

/**
 * Definition for ListNode
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) {
 *         val = x;
 *         next = null;
 *     }
 * }
 */
public class Solution {
    /**
     * @param ListNode head is the head of the linked list
     * @return: ListNode head of linked list
     */
    public static ListNode deleteDuplicates(ListNode head) { 
        if (head == null) {
            return null;
        }
        ListNode node = head;
        while (node.next != null) {
            if (node.val == node.next.val) {
                node.next = node.next.next;
            }
            else {
                node = node.next;
            }
        }
        return head;
        
    }  
}

原题地址

LintCode:删除排序链表中的重复元素

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 翻转链表

    一份执着✘
  • 链表倒数第n个节点

    一份执着✘
  • 两两交换链表中的节点

    一份执着✘
  • LintCode 删除排序链表中的重复元素题目

    desperate633
  • 每天一道leetcode141-环形链表

    乔戈里
  • 【Leetcode】109.有序链表转换二叉搜索树

    本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。

    Leetcode名企之路
  • 链表的相关操作

    #include<iostream> using namespace std; struct node { int data; node *ne...

    用户1215536
  • 【Leetcode】86. 分隔链表

    给定一个链表和一个特定值 x,对链表进行分隔,使得所有小于 x 的节点都在大于或等于 x 的节点之前。

    Leetcode名企之路
  • leetcode445. Add Two Numbers II

    链表形式跟非链表形式的最大区别在于我们无法根据下标来访问对应下标的元素。假如我们希望从后往前对每个位置求和,则必须每次都从前往后访问到对应下标的值才可以。因此这...

    眯眯眼的猫头鹰
  • mysql设置utf8mb4字符编码

    修改my.cnf文件。加入以下内容,然后重启数据库:systemctl restart mysqld

    zhangdd

扫码关注云+社区

领取腾讯云代金券