如何使用Java函数删除链表中的重复项?
发布时间:2023-07-01 09:29:17
删除链表中的重复项可以使用Java函数来实现。下面是一种可能的实现方法:
1. 首先,定义一个链表节点类,包含一个值和指向下一个节点的指针。例如:
public class ListNode {
int val;
ListNode next;
ListNode(int x) {
val = x;
next = null;
}
}
2. 创建一个函数来删除链表中的重复项。函数接受一个链表的头节点作为参数,并返回删除重复项后的链表的头节点。例如:
public ListNode deleteDuplicates(ListNode head) {
if (head == null || head.next == null) {
return head;
}
ListNode current = head;
while (current != null && current.next != null) {
if (current.val == current.next.val) {
current.next = current.next.next;
} else {
current = current.next;
}
}
return head;
}
3. 在主函数中创建一个链表并调用删除重复项的函数:
public static void main(String[] args) {
// 创建示例链表:1->1->2->3->3
ListNode head = new ListNode(1);
ListNode node1 = new ListNode(1);
ListNode node2 = new ListNode(2);
ListNode node3 = new ListNode(3);
ListNode node4 = new ListNode(3);
head.next = node1;
node1.next = node2;
node2.next = node3;
node3.next = node4;
// 删除重复项
ListNode newHead = deleteDuplicates(head);
// 打印删除重复项后的链表:1->2->3
ListNode current = newHead;
while (current != null) {
System.out.print(current.val + "->");
current = current.next;
}
System.out.println("null");
}
这就是一个简单的使用Java函数删除链表中重复项的方法。整个过程的时间复杂度是O(n),其中n是链表的长度。
