解题思路:
思路:并没有创建三个链表,而是只通过一个链表对数据排序再加入
输出时是临时变量的下一个,避免把头指针输出
在对数据排序加入时找的temp是位于添加位置的前一个节点,否则插入不了
注意事项:
参考代码:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
int n=scanner.nextInt();
int m=scanner.nextInt();
LinkedList01 linkedList01=new LinkedList01();
for (int i=1;i<=n;i++){
int date01=scanner.nextInt();
int date02=scanner.nextInt();
Information information01=new Information(date01,date02);
linkedList01.add_01(information01);
}
//向下一个链表添加数据
for (int i=1;i<=m;i++){
int date01=scanner.nextInt();
int date02=scanner.nextInt();
Information information01=new Information(date01,date02);
linkedList01.add_01(information01);
}
linkedList01.list_01();
}
}
//链表1
class LinkedList01{
Information head=new Information(-1,-1);
//添加节点
public void add_01(Information information){
Information temp=head;
while (true){
//添加前先判断是否满
if (temp.next==null){
break;
}
if (temp.next.no>information.no){
break;
}
temp=temp.next;
}
//进行数据添加
information.next=temp.next;
temp.next=information;
}
public void list_01(){
Information temp=head;
while (true){
if (temp.next==null){
break;
}
System.out.println(temp.next);
temp=temp.next;
}
}
}
/*
//链表2
class LinkedList02{
Information head=new Information(-1,-1);
public void add_02(Information information){
Information temp=head;
while (true){
//添加前先判断是否满
if (temp.next==null){
break;
}
temp=temp.next;
}
//进行数据添加
temp.next=information;
}
}
*/
class Information{
public int no;
public int score;
public Information next;
public Information(int no, int score) {
this.no = no;
this.score = score;
}
@Override
public String toString() {
return no+" "+score ;
}
}
0.0分
0 人评分
C二级辅导-进制转换 (C语言代码)浏览:514 |
弟弟的作业 (C++代码)浏览:1300 |
矩阵乘法 (C++代码)浏览:1460 |
C语言程序设计教程(第三版)课后习题8.3 (C语言代码)浏览:411 |
十->二进制转换 (C语言代码)浏览:1291 |
WU-整数平均值 (C++代码)浏览:1240 |
C语言程序设计教程(第三版)课后习题9.2 (C语言代码)浏览:607 |
C语言程序设计教程(第三版)课后习题6.5 (C语言代码)浏览:487 |
C语言程序设计教程(第三版)课后习题7.4 (C语言代码)浏览:501 |
蓝桥杯基础练习VIP-报时助手 (C++代码)浏览:1062 |