题解 | #从单向链表中删除指定值的节点#
从单向链表中删除指定值的节点
https://www.nowcoder.com/practice/f96cd47e812842269058d483a11ced4f
import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
private static class LinkNode{
int val;
LinkNode next;
LinkNode(int val){
this.val=val;
}
}
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
// 注意 hasNext 和 hasNextLine 的区别
int n=in.nextInt();
int head=in.nextInt();
LinkNode h=new LinkNode(head);
for(int i=1;i<n;i++){
int b=in.nextInt();
int f=in.nextInt();
insert(h,b,f);
}
int val=in.nextInt();
delete(h,val);
LinkNode p=h;
while(p!=null){
System.out.print(p.val+" ");
p=p.next;
}
}
public static void delete(LinkNode h,int val){
LinkNode p=h;
while(p.next.val!=val){
p=p.next;
}
LinkNode tmp=p.next.next;
p.next=tmp;
}
public static void insert(LinkNode h,int b,int f){
LinkNode p=h;
while(p.val!=f){
p=p.next;
}
LinkNode tmp=p.next;
p.next=new LinkNode(b);
p.next.next=tmp;
}
}
安克创新 Anker公司福利 800人发布

