LeetCode-2-Add-Two-Numbers 链表
2017-08-08 20:39
501 查看
题意是给俩非空链表,每个结点是0-9的数字,输出这俩链表的每一位加起来组成的一个新链表,要考虑进位的问题,链表左边是最低位,而且链表长度可以不一样。
例如:
3-4-5加4-6-2得7-0-8
5加5得0-1
0-8加0-2-1得0-0-2
C++:
java:
Python:
例如:
3-4-5加4-6-2得7-0-8
5加5得0-1
0-8加0-2-1得0-0-2
C++:
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */ class Solution { public: ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) { ListNode *ans=new ListNode(0); ListNode *p=ans; int add=0; ListNode *cur1=l1; ListNode *cur2=l2; while(cur1!=NULL||cur2!=NULL||add>0){ int v1=0,v2=0,v3=0; if(cur1!=NULL)v1=cur1->val; if(cur2!=NULL)v2=cur2->val; v3=(v1+v2+add)%10; add=(v1+v2+add)/10; p->next=new ListNode(v3); if(cur1!=NULL)cur1=cur1->next; if(cur2!=NULL)cur2=cur2->next; p=p->next; } return ans->next; } };
java:
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */ public class Solution { public ListNode addTwoNumbers(ListNode l1, ListNode l2) { ListNode ans=new ListNode(0); ListNode p=ans; int add=0; ListNode cur1=l1; ListNode cur2=l2; while(cur1!=null||cur2!=null||add>0){ int v1=0,v2=0,v3=0; if(cur1!=null)v1=cur1.val; if(cur2!=null)v2=cur2.val; v3=(v1+v2+add)%10; add=(v1+v2+add)/10; p.next=new ListNode(v3); if(cur1!=null)cur1=cur1.next; if(cur2!=null)cur2=cur2.next; p=p.next; } return ans.next; } }
Python:
# Definition for singly-linked list. # class ListNode(object): # def __init__(self, x): # self.val = x # self.next = None class Solution(object): def addTwoNumbers(self, l1, l2): """ :type l1: ListNode :type l2: ListNode :rtype: ListNode """ ans=ListNode(0) p=ans add=0 cur1=l1 cur2=l2 while cur1!=None or cur2!=None or add>0: v1=0 v2=0 v3=0 if cur1!=None: v1=cur1.val if cur2!=None: v2=cur2.val v3=(v1+v2+add)%10 add=(v1+v2+add)/10 p.next=ListNode(v3) if cur1!=None: cur1=cur1.next if cur2!=None: cur2=cur2.next p=p.next return ans.next
相关文章推荐
- LeetCode之“链表”:Add Two Numbers
- leetcode Add Two Numbers(链表)
- leetcode_2_题——Add Two Numbers(链表)
- Add Two Numbers Leetcode 链表相加
- LeetCode 2 : Add Two Numbers ---- 单链表相加
- LeetCode 2 Add Two Numbers(链表)
- 闲话链表(一) leetcode 之 Add Two Numbers
- Leetcode Add Two Numbers 两个链表表示的数相加
- 链表:链表两数相加( LeetCode 2. Add Two Numbers(两数相加))
- 【题解】【链表】【Leetcode】Add Two Numbers
- LeetCode Add Two Numbers两个链表数值相加
- LeetCode: 2_Add Two Numbers | 两个链表中的元素相加 | Medium
- LeetCode_2 Add Two Numbers(链表)
- [Leetcode #2]Add Two Numbers 链表存储的两个正数相加
- leetcode--Add Two Numbers--链表
- leetcode 2 Add Two Numbers(链表)
- LeetCode 2 Add Two Numbers(链表操作)
- [C++]LeetCode: 108 Add Two Numbers (反序链表求和)
- [Leetcode #2]Add Two Numbers 链表存储的两个正数相加
- LeetCode | Add Two Numbers(两个链表相加)