addTwoNumbers(C)
来源:互联网 发布:js 多个异步请求 编辑:程序博客网 时间:2024/05/22 13:12
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
struct ListNode {
int val;
struct ListNode *next;
};
struct ListNode* addTwoNumbers(struct ListNode* l1,struct ListNode* l2){ //无头指针
struct ListNode *p1=(struct ListNode *)malloc(sizeof(struct ListNode));
struct ListNode *p2=(struct ListNode *)malloc(sizeof(struct ListNode));
p1=l1;
p2=l2;
int num1=0;
int num2=0;
int sum1=0;
int sum2=0;
for(;p1!=NULL;p1=p1->next){
sum1=sum1+p1->val*pow(10,num1);
printf("sum1 =%d \n",sum1);
num1++;
}
for(;p2!=NULL;p2=p2->next){
sum2=sum2+p2->val*pow(10,num2);
printf("sum2 =%d \n",sum2);
num2++;
}
int sum3;
sum3=sum1+sum2;
int array=0; //数组维数
if(sum3==0){
array++;
}
while(sum3>=0){
sum3=sum3/10;
array++;
}
sum3=sum1+sum2;
int a[array]; //保留各位置参数
int i;
for(i=0;i<array;i++){
a[i]=sum3%10;
printf("a[%d]=%d \n",i,a[i]);
sum3=sum3/10;
}
struct ListNode * nodes[array];
for(i=0;i<array;i++){
struct ListNode * q1=(struct ListNode *)malloc(sizeof(struct ListNode));
q1->val=a[i];
q1->next=NULL;
nodes[i]=q1;
}
for(i=0;i<array-1;i++){
nodes[i]->next=nodes[i+1];
}
return nodes[0];
}
int main(){
struct ListNode *e1=(struct ListNode *)malloc(sizeof(struct ListNode));
e1->val=0;
e1->next=NULL;
//struct ListNode *e2=(struct ListNode *)malloc(sizeof(struct ListNode));
//e2->val=1;
//struct ListNode *e3=(struct ListNode *)malloc(sizeof(struct ListNode));
//e3->val=2;
//e1->next=e2;
//e2->next=e3;
//e3->next=NULL;
struct ListNode *e4=(struct ListNode *)malloc(sizeof(struct ListNode));
e4->val=0;
e4->next=NULL;
//struct ListNode *e5=(struct ListNode *)malloc(sizeof(struct ListNode));
//e5->val=4;
//struct ListNode *e6=(struct ListNode *)malloc(sizeof(struct ListNode));
// e6->val=2;
// e4->next=e5;
//e5->next=e6;
//e6->next=NULL;
struct ListNode *e7=(struct ListNode *)malloc(sizeof(struct ListNode));
e7=addTwoNumbers(e1,e4);
for(;e7!=NULL;e7=e7->next){
printf("h3 val=%d \n",e7->val);
}
return 0;
}
#include <stdlib.h>
#include <math.h>
struct ListNode {
int val;
struct ListNode *next;
};
struct ListNode* addTwoNumbers(struct ListNode* l1,struct ListNode* l2){ //无头指针
struct ListNode *p1=(struct ListNode *)malloc(sizeof(struct ListNode));
struct ListNode *p2=(struct ListNode *)malloc(sizeof(struct ListNode));
p1=l1;
p2=l2;
int num1=0;
int num2=0;
int sum1=0;
int sum2=0;
for(;p1!=NULL;p1=p1->next){
sum1=sum1+p1->val*pow(10,num1);
printf("sum1 =%d \n",sum1);
num1++;
}
for(;p2!=NULL;p2=p2->next){
sum2=sum2+p2->val*pow(10,num2);
printf("sum2 =%d \n",sum2);
num2++;
}
int sum3;
sum3=sum1+sum2;
int array=0; //数组维数
if(sum3==0){
array++;
}
while(sum3>=0){
sum3=sum3/10;
array++;
}
sum3=sum1+sum2;
int a[array]; //保留各位置参数
int i;
for(i=0;i<array;i++){
a[i]=sum3%10;
printf("a[%d]=%d \n",i,a[i]);
sum3=sum3/10;
}
struct ListNode * nodes[array];
for(i=0;i<array;i++){
struct ListNode * q1=(struct ListNode *)malloc(sizeof(struct ListNode));
q1->val=a[i];
q1->next=NULL;
nodes[i]=q1;
}
for(i=0;i<array-1;i++){
nodes[i]->next=nodes[i+1];
}
return nodes[0];
}
int main(){
struct ListNode *e1=(struct ListNode *)malloc(sizeof(struct ListNode));
e1->val=0;
e1->next=NULL;
//struct ListNode *e2=(struct ListNode *)malloc(sizeof(struct ListNode));
//e2->val=1;
//struct ListNode *e3=(struct ListNode *)malloc(sizeof(struct ListNode));
//e3->val=2;
//e1->next=e2;
//e2->next=e3;
//e3->next=NULL;
struct ListNode *e4=(struct ListNode *)malloc(sizeof(struct ListNode));
e4->val=0;
e4->next=NULL;
//struct ListNode *e5=(struct ListNode *)malloc(sizeof(struct ListNode));
//e5->val=4;
//struct ListNode *e6=(struct ListNode *)malloc(sizeof(struct ListNode));
// e6->val=2;
// e4->next=e5;
//e5->next=e6;
//e6->next=NULL;
struct ListNode *e7=(struct ListNode *)malloc(sizeof(struct ListNode));
e7=addTwoNumbers(e1,e4);
for(;e7!=NULL;e7=e7->next){
printf("h3 val=%d \n",e7->val);
}
return 0;
}
0 0
- addTwoNumbers(C)
- AddTwoNumbers
- AddTwoNumbers
- LeetCode AddTwoNumbers
- #002AddTwoNumbers
- 2AddTwoNumbers
- LeetCode AddTwoNumbers
- 2.addTwoNumbers
- LeetCode--------AddTwoNumbers
- 2.AddTwoNumbers
- [LeetCode]AddTwoNumbers
- LeetCode AddTwoNumbers
- Leetcode:AddTwoNumbers
- LeetCode2-AddTwoNumbers
- Problem2:addTwoNumbers
- LeetCode(2) AddTwoNumbers
- LeetCode 002 AddTwoNumbers
- Leetcode#2 AddTwoNumbers
- 运用PAC(主成分分析法)进行人脸识别的MATLAB 代码实现
- spring Bean的作用域
- java 使用RandomAccessFile类基于指针方式读写文件
- Fast R-CNN论文详解
- Kafka源码阅读 —— KafkaController(1)
- addTwoNumbers(C)
- POJ 1002 487-3279 水题字符串
- 计算结构体成员偏移量
- Linux Jboss下logback日志框架的输出日志只保留10天的问题
- cin.tie与sync_with_stdio加速输入输出
- Android Service与Activity之间通信的几种方式
- 主从同步自动化脚本
- 微信公众平台后台接入简明指南
- Oracle批量导入数据