演算法分析與設計課程(1):Add Two Numbers
阿新 • • 發佈:2019-02-19
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;
}