链表的定义
// 单链表
struct ListNode{
int val; // 数据域
ListNode *next; // 指针域
ListNode(int x) : val(x) , next(null) {} // 构造函数
};
节点初始化
// 节点初始化
// 构造初始化
ListNode *head1 = new Listnode(5);
// 默认初始化
ListNode *head2 = new ListNode();
head2->val = 5;
遇见的问题
1、变量定义问题
变量定义问题,变量定义在判断条件里面,后面用到此变量的时候报错,定义到外部则恢复正常
显示如图错误,变量未定义。
2、代码逻辑错误
flag_add 表示 是否进位的flag。n1,n2表示两个数,flag_add表示是否有进位。
原来的逻辑: 计算当前两数字之和时,把上一时刻的进位值计算利用后,给置空。在判断当前总和的大小来确定下一步的进位标志。
bug: 由于没有用一个变量储存总和,所以改变flag_add时,也会改变总和值,进而出现错误。
3、链表理解有误
正确理解:head和result 是两个指针,首先指向同一块内存,然后result依次去生成链表的其他的部分。head是在头节点上。