主页 > 游戏开发  > 

java练习(27)

java练习(27)

ps:练习来自力扣

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

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

代码来自官方题解

class Solution { public ListNode deleteDuplicates(ListNode head) { // 首先检查链表是否为空,如果为空,直接返回 head(也就是 null) // 因为空链表不存在重复元素,无需进行删除操作 if (head == null) { return head; } // 定义一个指针 cur,初始时指向链表的头节点 head // 后续我们会通过移动 cur 指针来遍历链表 ListNode cur = head; // 使用 while 循环来遍历链表,只要 cur 的下一个节点不为空,就继续循环 while (cur.next != null) { // 比较当前节点 cur 的值和它下一个节点 cur.next 的值 if (cur.val == cur.next.val) { // 如果两个节点的值相等,说明这两个节点是重复的 // 此时我们将 cur 的 next 指针指向 cur.next 的下一个节点 // 也就是跳过 cur.next 这个重复节点,相当于删除了它 cur.next = cur.next.next; } else { // 如果两个节点的值不相等,说明当前节点和下一个节点不是重复节点 // 此时将 cur 指针移动到下一个节点,继续往后遍历链表 cur = cur.next; } } // 当遍历完整个链表后,所有重复的节点都已经被删除 // 最后返回链表的头节点 head,此时链表中每个元素只出现一次 return head; } }

标签:

java练习(27)由讯客互联游戏开发栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“java练习(27)