package sy3;
import java.util.HexFormat;
public class Test1 {
public static void main(String[] args) {
ListNode l1 = new ListNode(1);
ListNode l2 = new ListNode(1);
ListNode l3 = new ListNode(3);
ListNode l4 = new ListNode(3);
ListNode l5 = new ListNode(4);
Creat c = new Creat();
c.add(l1);
c.add(l2);
c.add(l3);
c.add(l4);
c.add(l5);
ListNode head = c.getHead();
ListNode shanchu = shanchu(head);
while (shanchu != null) {
System.out.println(shanchu.val);
shanchu = shanchu.next;
}
}
public static ListNode shanchu(ListNode node) {
if (node == null) {
return node;
}
ListNode cur = node;
while (cur.next != null) {
if (cur.val == cur.next.val) {
cur.next = cur.next.next;
} else {
cur = cur.next;
}
}
return node;
}
}
//创建链表
class Creat {
ListNode head = new ListNode(0);
public ListNode getHead() {
return head;
}
public void add(ListNode node) {
ListNode temp = head;
while (true) {
if (temp.next == null) {
break;
}
temp = temp.next;
}
temp.next = node;
}
}
class ListNode {
int val;
ListNode next;
public ListNode(int val) {
this.val = val;
}
}
运行结果:

本文介绍了一个Java程序,展示了如何使用ListNode类实现链表的创建、合并和删除重复节点。通过实例`Test1`,展示了如何使用`shanchu`方法遍历并移除链表中相邻值相等的节点。
859

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



