当前位置:网站首页>leetcode - 445. Add two numbers II
leetcode - 445. Add two numbers II
2022-07-05 08:22:00 【zmm_ mohua】
leetcode - 445. Addition of two numbers II
subject
Code
#include <iostream>
#include <vector>
using namespace std;
typedef struct ListNode{
int val;
struct ListNode *next;
}ListNode, *LinkList;
void create(LinkList &head){
int n;
cin>>n;
head = new ListNode;
head->next = NULL;
ListNode *tail = head;
for(int i = 0; i < n; i++){
ListNode *p = new ListNode;
cin>>p->val;
p->next = NULL;
tail->next = p;
tail = p;
}
}
// With arrays
ListNode* addTwoNumbers1(ListNode* l1, ListNode* l2) {
vector<int> nums1, nums2, res;
while(l1){
nums1.push_back(l1->val);
l1 = l1->next;
}
while(l2){
nums2.push_back(l2->val);
l2 = l2->next;
}
int i = nums1.size() - 1;
int j = nums2.size() - 1;
int flag = 0, sum = 0, num = 0;
while(i >= 0 || j >= 0){
if(i < 0){
sum = flag + nums2[j--];
}else if(j < 0){
sum = flag + nums1[i--];
}else{
sum = nums1[i--] + nums2[j--] + flag;
}
flag = sum / 10;
num = sum % 10;
res.push_back(num);
}
if(flag){
res.push_back(flag);
}
int n = res.size();
ListNode *head = new ListNode;
head->next = NULL;
ListNode *tail = head;
for(int k = n - 1; k >= 0; k--){
ListNode *p = new ListNode;
p->val = res[k];
p->next = NULL;
tail->next = p;
tail = p;
}
return head->next;
}
// List reversal
ListNode* reverse(ListNode *head){
ListNode *pre = new ListNode;
pre = NULL;
ListNode *cur = head;
while(cur){
ListNode *temp = cur->next;
cur->next = pre;
pre = cur;
cur = temp;
}
return pre;
}
ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {
ListNode *h1 = reverse(l1);
ListNode *h2 = reverse(l2);
ListNode *head = new ListNode;
head->next = NULL;
ListNode *tail = head;
int sum = 0, flag = 0, num = 0;
while(h1 || h2){
if(!h1){
sum = flag + h2->val;
h2 = h2->next;
}else if(!h2){
sum = flag + h1->val;
h1 = h1->next;
}else{
sum = flag + h1->val + h2->val;
h1 = h1->next;
h2 = h2->next;
}
flag = sum / 10;
num = sum % 10;
ListNode *p = new ListNode;
p->val = num;
p->next = NULL;
tail->next = p;
tail = p;
}
if(flag){
ListNode *p = new ListNode;
p->val = flag;
p->next = NULL;
tail->next = p;
tail = p;
}
head = head->next;
return reverse(head);
}
int main(){
ListNode *l1, *l2, *res;
create(l1);
create(l2);
l1 = l1->next;
l2 = l2->next;
res = addTwoNumbers(l1, l2);
while(res){
cout<<res->val<<" ";
res = res->next;
}
return 0;
}
边栏推荐
- Wifi-802.11 negotiation rate table
- [trio basic tutorial 17 from getting started to mastering] set up and connect the trio motion controller and input the activation code
- C WinForm [realize the previous and next selection pictures] - practice 7
- Measurement fitting based on Halcon learning [III] PM_ measure_ board. Hdev routine
- General makefile (I) single C language compilation template
- 亿学学堂给的证券账户安不安全?哪里可以开户
- 实例006:斐波那契数列
- Simple design description of MIC circuit of ECM mobile phone
- Correlation based template matching based on Halcon learning [II] find_ ncc_ model_ defocused_ precision. hdev
- Arduino uses nrf24l01+ communication
猜你喜欢
Shape template matching based on Halcon learning [viii] PM_ multiple_ models. Hdev routine
[trio basic tutorial 16 from introduction to proficiency] UDP communication test supplement
Compilation warning solution sorting in Quartus II
Ble encryption details
Several implementation schemes of anti reverse connection protection of positive and negative poles of power supply!
STM32 virtualization environment of QEMU
Wifi-802.11 negotiation rate table
实例009:暂停一秒输出
Shell script
Negative pressure generation of buck-boost circuit
随机推荐
【论文阅读】2022年最新迁移学习综述笔注(Transferability in Deep Learning: A Survey)
Simple design description of MIC circuit of ECM mobile phone
实例005:三数排序 输入三个整数x,y,z,请把这三个数由小到大输出。
[trio basic tutorial 17 from getting started to mastering] set up and connect the trio motion controller and input the activation code
Talk about the function of magnetic beads in circuits
Correlation based template matching based on Halcon learning [II] find_ ncc_ model_ defocused_ precision. hdev
Wifi-802.11 negotiation rate table
Semiconductor devices (I) PN junction
Carrier period, electrical speed, carrier period variation
UE像素流,来颗“减肥药”吧!
Hardware 3 -- function of voltage follower
After installing the new version of keil5 or upgrading the JLINK firmware, you will always be prompted about the firmware update
STM32 --- GPIO configuration & GPIO related library functions
My-basic application 1: introduction to my-basic parser
STM32 single chip microcomputer - external interrupt
go依赖注入--google开源库wire
Shell script
matlab timeserise
Sword finger offer 06 Print linked list from end to end
Imx6ull bare metal development learning 2- use C language to light LED indicator