Add Two Numbers
来源:互联网 发布:淘宝搞笑收货人 编辑:程序博客网 时间:2024/06/16 08:22
You are given two linked lists representing two non-negative numbers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and return it as a linked list.
Input: (2 -> 4 -> 3) + (5 -> 6 -> 4)
Output: 7 -> 0 -> 8
#include<stdio.h>#include<stdlib.h>typedef struct ListNode { int val; struct ListNode *next;}ListNode;ListNode *addTowNumbers(ListNode *l1, ListNode *l2) { ListNode *p1 = l1, *p2 = l2, *head; int data = 0, carry = 0, i = 1, j = 1; int data1 = 0, data2 = 0; if(l1 == NULL && l2 == NULL) return NULL; head = p1 = p2 =(ListNode *)malloc(sizeof(ListNode)); while(l1 != NULL || l2 != NULL || carry == 1) { p2->next = p1; p2 = p1; if(l1 != NULL) { data1 = l1->val; l1 = l1->next; } else data1 = 0; if(l2 != NULL) { data2 = l2->val; l2 = l2->next; } else data2 = 0; data = data1 + data2 + carry; if(data >9) carry = 1; else carry = 0; p1->val = data%10; p1 =(ListNode *)malloc(sizeof(ListNode)); } p2->next = NULL; return head;}void main() { int data,n=0; ListNode *head,*head1,*p1,*head2,*p2,*p3; p1=p2=(ListNode *)malloc(sizeof(ListNode)); scanf("%d",&data); p1->val=data; head1=NULL; while(data!=0){ n++; if(n==1) head1=p1; else p2->next=p1; p2=p1; p1=(ListNode *)malloc(sizeof(ListNode)); scanf("%d",&data); p1->val=data; } p2->next=NULL; p1=p2=(ListNode *)malloc(sizeof(ListNode)); scanf("%d",&data); p1->val=data; head2=NULL; n=0; while(data!=0){ n++; if(n==1) head2=p1; else p2->next=p1; p2=p1; p1=(ListNode *)malloc(sizeof(ListNode*)); scanf("%d",&data); p1->val=data; } p2->next=NULL; p1=head1; p2=head2; while(p1) {printf("%d,",p1->val);p1=p1->next;} while(p2) {printf("%d,",p2->val);p2=p2->next;} head = addTowNumbers(head1, head2); p3 = head; while(p3) {printf("%d,",p3->val);p3=p3->next;} printf("\n");}
0 0
- Add two numbers & Add binary
- LeetCode: Add Two Numbers
- Add Two Numbers
- LeetCode: Add Two Numbers
- [LeetCode]Add Two Numbers
- LeetCode Add Two Numbers
- Leetcode: Add Two Numbers
- Add Two Numbers
- LeetCode : Add Two Numbers
- LeetCode Add Two Numbers
- [LeetCode] Add Two Numbers
- LeetCode4: Add Two Numbers
- Leetcode : Add Two Numbers
- Add Two Numbers
- 【leetcode】Add Two Numbers
- add two numbers
- Add Two Numbers
- Add Two Numbers
- 修改Oracle服务端的字符集
- js选项卡制作
- parameter方式下的传值
- await和async的使用方法
- iOS vpn
- Add Two Numbers
- 过滤器(opensessioninviewfilter)与拦截器(opensessioninviewinterceptor)
- flume-ng 整体介绍
- 8633 回文划分
- windows7 64位 安装oracle 11g R2 过程
- 250 面试基础题
- CKEditor 使用 (笔记)
- 项目分角色登录设计—管理员,商户角色类设计
- jsp中利用jquery实现无刷新验证用户名是否存在