data-structures - 合并两个排序的链表空指针和输入仅适用于一个实例
问题描述
第一行包含一个整数 t,即测试用例的数量。
每个测试用例的格式如下:
第一行包含一个整数 n,即第一个链表的长度。下一行包含 n 个整数,即第一个链表的元素。下一行包含一个整数 m,即第二个链表的长度。下一行包含 m 个整数,即第二个链表的元素。
我的代码:
static void merge(MergeTowLiLi lili1, MergeTowLiLi lili2, MergeTowLiLi lili3){
Node temp1 = lili1.head;
Node temp2 = lili2.head;
Node temp3 = lili3.head;
while(temp1 != null || temp2 != null){
if(temp1.data <= temp2.data){
lili3.append(temp1.data);
temp1 = temp1.next;
}else{
lili3.append(temp2.data);
temp2 = temp2.next;
}
}
while(temp3!=null){
temp3 = temp3.next;
}
if(temp1.next == null){
while(temp2 != null){
lili3.append(temp2.data);
temp2 = temp2.next;
}
}
if(temp2.next == null){
while(temp1 != null){
lili3.append(temp1.data);
temp1 = temp1.next;
}
}
lili3.printList();
}
public static void main(String[] args){
MergeTowLiLi lili1 = new MergeTowLiLi();
MergeTowLiLi lili2 = new MergeTowLiLi();
MergeTowLiLi lili3 = new MergeTowLiLi();
Scanner sc = new Scanner(System.in);
int t = sc.nextInt();
for(int i=0;i<t;i++) {
int n = sc.nextInt();
for (int j = 0; j < n; j++) {
int l1 = sc.nextInt();
lili1.append(l1);
}
int m = sc.nextInt();
for (int k = 0; k < m; k++) {
int l2 = sc.nextInt();
lili2.append(l2);
}
merge(lili1, lili2, lili3);
}
}
我无法理解线程“main”中的空指针异常异常 java.lang.NullPointerException:无法读取字段“data”,因为“temp1”为空,请提前提供帮助。
解决方案
推荐阅读
- serialization - 将视频数据从 ps ddr 通过 axi dma 串行传输到 pl 侧的 qam 调制器,串行数据从 qam 解调器通过 AXI dma 传输到 ps ddr
- firebase - Flutter Web App Firebase OrderBy 不工作
- global-payments-api - 将 HPP 设置为在生产而不是沙盒中运行。获取无效的商家 ID 错误 506
- java - 递归打印给定长度的二进制数
- git-bash - 使用 GitBash 命令在 Windows 10 上打开文件资源管理器
- google-analytics - 如何使用 GA4 计算活跃用户的平均站点访问时间跨度
- excel - 查找不在两个对象中的元素 vb.net
- python - Selenium python,使用Select() select_by_value(),搜索字符串是否包含
- firebase - Firebase 实时数据库对未经授权的请求进行计费,尤其是管理费用
- html - 网页中的Haml输出txt文件