LeetCode-2-Add-Two-Numbers 链表
来源:互联网 发布:qq浏览器mac版官网 编辑:程序博客网 时间:2024/06/14 16:31
题意是给俩非空链表,每个结点是0-9的数字,输出这俩链表的每一位加起来组成的一个新链表,要考虑进位的问题,链表左边是最低位,而且链表长度可以不一样。
例如:
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 = Noneclass 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
阅读全文
1 0
- leetcode[#2 链表]Add Two Numbers
- LeetCode 2 Add Two Numbers(链表)
- LeetCode-2-Add-Two-Numbers 链表
- LeetCode--Add Two Numbers(链表)
- leetcode Add Two Numbers 链表
- leetcode--Add Two Numbers--链表
- leetcode---Add Two Numbers---链表
- leetcode---add-two-numbers---链表
- LeetCode 2 - Add Two Numbers
- LeetCode 2: Add Two Numbers
- Leetcode: Add Two Numbers (2)
- [leetcode 2] Add Two Numbers
- [Leetcode] 2 - Add Two Numbers
- LeetCode 2:《Add Two Numbers》
- LeetCode | #2 Add Two Numbers
- LeetCode 2 Add Two Numbers
- [Leetcode]2Add Two Numbers
- leetcode #2 Add Two Numbers
- BPM平台介绍
- js下IE和FF的一些兼容写法总结
- POJ
- CVE-2017-8464 转载poc
- 预处理的学习
- LeetCode-2-Add-Two-Numbers 链表
- Sort函数用法
- layui源码详细分析系列之模板引擎
- 路由器工作原理
- HBase深入学习(2)
- i春秋-2016-2017年信息安全竞赛 Web writeup 补题 By Assassin
- 用链表实现通讯录,并保存到文件
- Ubuntu下安装JDK
- hadoop系列之一hadoop文件配置