您现在的位置是:首页 > 后台技术 > 数据结构与算法数据结构与算法

删除排序链表中的重复元素(图文)

第十三双眼睛2023-11-26【数据结构与算法】人已围观

简介删除排序链表中的重复元素
给定一个已排序的链表的头 head , 删除所有重复的元素,使每个元素只出现一次 。返回 已排序的链表 。

思路:定义一个辅助节点,从链表的头部开始移动,判断当前节点和下一个节点的值是否一样,如果不一样,当前节点往后移动,如果以后,当前节点的Next域不再指向下一个节点,而是指向下一个节点的下一个节点。代码如下,
节点类:
class ListNode {
    int val;
    ListNode next;
    ListNode() {}
    ListNode(int val) { this.val = val; }
    ListNode(int val, ListNode next) { this.val = val; this.next = next; }

    @Override
    public String toString() {
        return "ListNode{" +
                "val=" + val +
                ", next=" + next +
                '}';
    }
}
实现方法:
public static ListNode method1(ListNode node) {
    if (node == null) {
        return node;
    }
    //定义一个辅助节点指向当前节点
    ListNode current = node;
    while (current.next != null) {
        // 如果当前元素和下一个元素的值一样,当前元素的Next域就指向下一个元素的下一个元素
        if (current.val == current.next.val) {
            current.next = current.next.next;
        } else {
            current = current.next;
        }
    }
    return node;
}

Tags:

很赞哦! ()

文章评论

    共有条评论来说两句吧...

    用户名:

    验证码:

本站推荐

站点信息

  • 网站名称:JavaStudy
  • 建站时间:2019-1-14
  • 网站程序:帝国CMS7.5
  • 文章统计242篇文章
  • 标签管理标签云
  • 统计数据百度统计
  • 微信公众号:扫描二维码,关注我们