问题描述

问题分析
链表的简单模拟。就不过多赘述了。
解法:简单模拟
- 时间复杂度:O( n ),其中n表示链表的长度。
- 空间复杂度:O( 1 )
Java代码
package com.company;
public class Main {
public static class ListNode {
int val;
ListNode next;
ListNode(int x) { val = x; }
}
public static void main(String[] args) {
ListNode listNode = new ListNode(1);
listNode.next = new ListNode(1);
listNode.next.next = new ListNode(2);
listNode.next.next.next = new ListNode(3);
listNode.next.next.next.next = new ListNode(3);
ListNode result = deleteDuplicates(listNode);
System.out.println(111);
}
static public ListNode deleteDuplicates(ListNode head) {
//特殊情况处理
if (head == null){
return head;
}
//指针
ListNode L = head;
while (L.next != null){
if (L.next.val == L.val){
L.next = L.next.next;
}else {
L = L.next;
}
}
return head;
}
}
结果分析
以上代码的执行结果:
| 执行时间 | 内存消耗 |
|---|---|
| 1 ms | 36.5 MB |

本文介绍了一种链表节点去重的算法实现,通过简单模拟的方式去除链表中重复的节点,确保每个节点的值唯一。算法的时间复杂度为O(n),空间复杂度为O(1)。
483

被折叠的 条评论
为什么被折叠?



