Description:
You are given two non-empty linked lists representing two non-negative integers. 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.
You may assume the two numbers do not contain any leading zero, except the number 0 itself.
Input: (2 -> 4 -> 3) + (5 -> 6 -> 4)
Output: 7 -> 0 -> 8
思路分析:一:两个链表节点想加外产生新节点,
二:新链表需要逆序,只需用头插法建立新链表即可
代码如下
#include <stdio.h>
*Definition for singly-linked list.
struct ListNode {
int val;
struct ListNode *next;
};
struct ListNode* addTwoNumbers(struct ListNode* l1, struct ListNode* l2) {
if(l1==null||l2==null)
printf("error");
return;
ListNode sumNode;
while(l1!=null&&l2!=null){
int temp;
ListNode tempNode;
temp = *l1.val+*l2.val;
tempNode.val = temp;
tempNode.next = *sumNode;
sumNode = *tempNode;
l1++;
l2++;
}
return sumNode;
}