为什么两个指向相同链接的两个指针在这里表现不同
Why do two pointer pointing to the same link behave differently here?
void fillList(ListNode *&emp,int a[],int n){
ListNode *e=new ListNode(a[0]);
emp=e;
for(int i=1;i<n;++i){
e=e->next;
e=new ListNode(a[i]);
}
}
void showList(ListNode *l){
while(l){
cout<<l->val<<' ';
l=l->next;
}
}
我在这里写了两个功能,一个用数组填充一个空链接,另一个用于输出链接。但是,当我输出链接时,它只是数组中的第一个元素。我做错了什么? 该程序如下列出。非常感谢。
#include<iostream>
using namespace std;
struct ListNode {
int val;
ListNode *next;
ListNode(int x) : val(x), next(NULL) {}
};
class Solution {
public:
ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {
ListNode *p1=l1, *p2=l2, *n1, *n2;
while(p1&&p2){
p1=p1->next;
p2=p2->next;
}
if(p2){n1=l2;n2=l1;}else{n1=l1;n2=l2;}
bool b=0;
while(l1){
if((l1->val+=l2->val)>=10){l1->val-=10;b=1;}
l1=l1->next;
l2=l2->next;
if(b)if(l1)l1->val++;else l1=new ListNode(1);
}
return n1;
}
};
void fillList(ListNode *&emp,int a[],int n){
ListNode *e=new ListNode(a[0]);
emp=e;
for(int i=1;i<n;++i){
e=e->next;
e=new ListNode(a[i]);
}
}
void showList(ListNode *l){
while(l){
cout<<l->val<<' ';
l=l->next;
}
}
int main(){
Solution sol;
ListNode *l1=0,*l2=0;
int a[]={2,4,3},b[]={5,6,4};
fillList(l1,a,3);
fillList(l2,b,3);
//cout<<l1->val<<endl;
showList(l1);
showList(l2);
showList(sol.addTwoNumbers(l1,l2));
}
首先,我真的要感谢您的问题,非常完整。
实际上问题在这里
for(int i=1;i<n;++i){
e=e->next;
e=new ListNode(a[i]);
}
您应该将其更改为以下代码为连接所有新创建的节点
for(int i=1;i<n;++i){
e->next = new ListNode(a[i]);
e=e->next;
}
相关文章:
- 当在同一名称空间中有两个具有相同签名的函数时,会发生什么
- 如何将两个不同矢量的同一位置的两个元素组合在一起
- 两个字符串在 c++ 中不相等
- 在两个类中共享相同的函数调用,并在不需要时避免空实例化
- 为什么Mat类的两个对象可以在不重载运算符+的情况下添加
- 如何确保在使用基于布尔值的两个方法之一调用方法时避免分支预测错误
- C++需要帮助从用户那里获得一个整数,并确保它在另外两个整数之间
- 在声明中合并两个常量"std::set"(不是在运行时)
- 为什么C++在将一个对象复制到另一个对象时需要对这两个对象进行低级常量限定
- 在c++中获取两个大int,并将它们存储在数组中
- 我有两个类需要在同一 cpp 文件中相互引用,但第一个类无法识别第二个类类型的对象
- 如何在加密++中将两个源组合成新的源
- 如何检查两个 std::向量在小于 O(n) 的时间复杂度内是否相等
- 类介绍 (c++) 项目希望我们创建两个构造函数,但它们都不需要任何参数 - 我应该在这里做什么?
- 为什么我们在这里创建两个PQ
- 当其中一个字符串来自cin时,无法比较两个字符串.这里怎么了
- 为什么两个指向相同链接的两个指针在这里表现不同
- 两个&&在一段时间内?
- 为什么我在这里得到两个不同的输出
- 为什么我在这里得到两个返回值