今天开始学Java 输入一个单向链表和一个节点的值,从单向链表中删除等于该值的节点,删除后如果链表中无节点则返回空指针。
2018-03-08 22:24
706 查看
题目描述
输入一个单向链表和一个节点的值,从单向链表中删除等于该值的节点,删除后如果链表中无节点则返回空指针。链表结点定义如下:struct ListNode{ int m_nKey; ListNode* m_pNext;};详细描述:本题为考察链表的插入和删除知识。链表的值不能重复构造过程,例如1 -> 23 -> 25 -> 14 -> 57 -> 2最后的链表的顺序为 2 7 3 1 5 4 删除 结点 2 则结果为 7 3 1 5 4输入描述:
1 输入链表结点个数2 输入头结点的值
3 按照格式插入各个结点
4 输入要删除的结点的值
输出描述:
输出删除结点后的序列示例1输入
5 2 3 2 4 3 5 2 1 4 3
输出
2 1 5 4import java.util.ArrayList;
import java.util.Scanner;
public class Main{
public static void main(String [] args){
Scanner sc =new Scanner(System.in);
while (sc.hasNextInt()){
//这两行代码要写在这个while循环里面
int number = sc.nextInt();
int head = sc.nextInt();
ArrayList<Integer> list = new ArrayList<>();
list.add(head);
for (int i=1;i<number;i++)
{
int insertNode = sc.nextInt();
int preNode = sc.nextInt();
int index = list.indexOf(preNode);
//在preNode这个点后面一个位置插入,index_insert=index+1
list.add(index+1,insertNode);
}
Object delectNode = sc.nextInt();
list.remove(delectNode);
for(int i=0;i<list.size();i++){
System.out.print(list.get(i)+" ");
}
//这里有个超坑的设置,输出完毕后记得换行,不然检测不通过!!!!马的,找了好久的bug!
System.out.println();
}
sc.close();
}
}
相关文章推荐
- 今天开始学Java 输入一个单向链表,输出该链表中倒数第k个结点,链表的倒数第1个结点为链表的尾指针。
- java实现输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head
- 输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head
- 一个单向链表,只知道某个节点的指针p,但是p不是尾节点,请编程删除节点p.
- 输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序
- 今天开始学Java 给定一个正整数,编写程序计算有多少对质数的和等于输入的这个正整数,并输出结果。
- 判断一个链表是否有环,如果有环返回环开始的结点指针
- 一个单向链表,不知道头节点,一个指针指向其中一个节点,问如何删除这个指针指向的节点?
- 坚持坚持!用Java写出删除一个链表的倒数第N个节点,并返回头节点(N总是可达的)
- 输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)
- 21.输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判
- 给定一个单向链表,目前已经有一个指针,指向某一个节点(记作A),现在要删除这个节点A,如何操作。
- 输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序
- 输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序
- 1.01一个单向链表,不知道头节点,一个指针指向其中的一个节点,问如何删除这个指针指向的节点?
- 输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。
- 输入一个单向链表,输出该链表中倒数第 k 个节点
- 13\给定单向链表的头指针和一个结点指针,定义一个函数在O(1)时间删除该结点,
- 单向链表(五) 按值查找节点,返回一个链表
- 给定单向链表的头指针和一个结点指针,定义一个函数在O(1)时间删除该结点