
//链表节点的定义
public class Node {
int data;//数据域
Node next;//递归定义
public Node(int data) {
this.data = data;
this.next=null;
}
public static void main(String[] args) {
Node a=new Node(1);
Node b=new Node(2);
Node c=new Node(3);
Node d=new Node(4);
Node e=new Node(5);
//将a.next连的b上
a.next=b;
b.next=c;
c.next=d;
d.next=e;
//根据前驱b删除后断c
b.next=c.next;
c.next=null;
//根据前驱b插入后继c
c.next=b.next;
b.next=c;
//链表遍历 已知第一个节点,遍历出所有节点
Node p=a;
while(p!=null){
System.out.print(p.data+"--");
p=p.next;//相当于数组i++
}
}
}
import java.util.Scanner;
public class 链栈 {
public static void main(String[] args) {
Node head = new Node(-1);
Scanner input = new Scanner(System.in);
for (int i = 1; i <= 5; i++) {
System.out.println("请输入第" + i + "个节点的值");
Node in = new Node(input.nextInt());
in.next = head.next;
head.next = in;
}
System.out.println("删除前:");
// 遍历
Node p = head.next;
while (p != null) {
System.out.print(p.data + "--");
p = p.next;
}
System.out.println("请输入你要删除的节点值");
int del = input.nextInt();
p = head.next;
Node q = head;
while (p.data != del) {
p = p.next;
q = q.next;
}
// 根据q删p
q.next = p.next;
p.next = null;
System.out.println("删除后:");
p = head.next;
while (p != null) {
System.out.print(p.data + "--");
p = p.next;
}
}
}