class ListNode {
int val;
ListNode next;
ListNode(int x) {
val = x;
}
ListNode(int[] x) {//保证输入的数组至少有1个元素
val = x[0];
ListNode n = this;
for (int i = 1; i < x.length; i++) {
//给next开空间,赋值
n.next = new ListNode(x[i]);
//下一个
n = n.next;
}
}
@Override
public String toString() {
String s = "" + this.val;
if (this.next != null) {
ListNode n = this.next;
while (true) {
s += n.val;
if (n.next == null) break;//没下一个了
//有下一个
n = n.next;
}
}
return s;
}
public static void deleteNode(ListNode node) {
node.val = node.next.val;
node.next = node.next.next;
}
}
测试方法:
public static void main(String[] args) {
//4519
ListNode n = new ListNode(4);
//保存起点
ListNode start = n;
// n=n.next;//此处不起作用,因为n.next为空,所以赋值无效!
//所以先让next有值,再让n=n.next才生效!
//给next赋值
n.next = new ListNode(5);
//让n=n.next
n = n.next;//n现在代表5
//以下重复
n.next = new ListNode(1);
n = n.next;//1
n.next = new ListNode(9);
n = n.next;//9
n.next = null;//9为最后一个,next=null
System.out.println(start.val + " " + start.next.val
+ " " + start.next.next.val + " " + start.next.next.next.val);
System.out.println(start);
System.out.println("---------------------------------");
//4519
//新写的构造
ListNode nn = new ListNode(new int[]{4, 5, 1, 9});
//保存起点
ListNode startn = nn;
System.out.println(startn);
}