将 C++ 中链表表示的两个数字相乘
在本教程中,我们将编写一个程序,将两个表示为链表的数字相乘。
让我们看看解决问题的步骤。
初始化两个链表。
遍历两个链表并生成两个数字。
将结果数字相乘。
返回两个数字的乘积。
示例
让我们看看代码。
#include <bits/stdc++.h>输出结果using namespace std;
struct Node {
int data;
struct Node* next;
};
void addNewNode(struct Node** head, int new_data) {
struct Node* newNode = new Node;
newNode->data = new_data;
newNode->next = *head;
*head = newNode;
}
long multiplyTwoLinkedLists(struct Node* firstHead, struct Node* secondHead) {
int _1 = 0, _2 = 0;
while (firstHead || secondHead) {
if (firstHead) {
_1 = _1 * 10 + firstHead->data;
firstHead = firstHead->next;
}
if (secondHead) {
_2 = _2 * 10 + secondHead->data;
secondHead = secondHead->next;
}
}
return _1 * _2;
}
void printLinkedList(struct Node *node) {
while(node != NULL) {
cout << node->data << "->";
node = node->next;
}
cout << "NULL" << endl;
}
int main(void) {
struct Node* firstHead = NULL;
struct Node* secondHead = NULL;
addNewNode(&firstHead, 1);
addNewNode(&firstHead, 2);
addNewNode(&firstHead, 3);
printLinkedList(firstHead);
addNewNode(&secondHead, 1);
addNewNode(&secondHead, 2);
printLinkedList(secondHead);
cout << multiplyTwoLinkedLists(firstHead, secondHead) << endl;
return 0;
}
如果你运行上面的代码,那么你会得到下面的结果。
6741
结论
如果您对本教程有任何疑问,请在评论部分提及。
以上是 将 C++ 中链表表示的两个数字相乘 的全部内容, 来源链接: utcz.com/z/345789.html