我是靠谱客的博主 落后画笔,这篇文章主要介绍链表求和(容易),现在分享给大家,希望可以做个参考。

复制代码
1
开始自己写错了,参考别人的写出来的
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
/* 你有两个用链表代表的整数,其中每个节点包含一个数字。 数字存储按照在原来整数中相反的顺序,使得第一个数字位于链表的开头。 写出一个函数将两个整数相加,用链表形式返回和 */ // Definition for singly-linked list. struct ListNode { int val; ListNode *next; ListNode(int x) : val(x), next(NULL) {} }; class Solution { public: /** * @param l1: the first list * @param l2: the second list * @return: the sum list of l1 and l2 */ ListNode *addLists(ListNode *l1, ListNode *l2) { // write your code here if (l1 == NULL) { return l2; } if (l2 == NULL) { return l1; } ListNode* head = new ListNode(0); ListNode*p = head; int temp = 0; int temp1 = 0; while ((l1!=NULL)&&(l2!=NULL)) { temp = l1->val + l2->val+temp1; temp1 = temp / 10; temp = temp % 10; p->next = new ListNode(temp); p = p->next; l1 = l1->next; l2 = l2->next; } while (l1!=NULL) { temp = l1->val + temp1; temp1 = temp / 10; temp = temp % 10; p->next = new ListNode(temp); p = p->next; l1 = l1->next; } while (l2 != NULL) { temp = l2->val + temp1; temp1 = temp / 10; temp = temp % 10; p->next = new ListNode(temp); p = p->next; l2 = l2->next; } if (temp1 != 0) { p->next = new ListNode(temp1); p = p->next; } return head->next; } }; int main() { ListNode* temp1=NULL; ListNode* temp2 = NULL; temp1 = new ListNode(3); temp1->next = new ListNode(1); temp1->next->next = new ListNode(5); temp2 = new ListNode(5); temp2->next = new ListNode(9); temp2->next->next = new ListNode(2); ListNode* temp3 = NULL; Solution a; temp3=a.addLists(temp1, temp2); cout << temp3->val << endl; cout << temp3->next->val << endl; system("pause"); return 0; }

最后

以上就是落后画笔最近收集整理的关于链表求和(容易)的全部内容,更多相关链表求和(容易)内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(48)

评论列表共有 0 条评论

立即
投稿
返回
顶部