Leetcode 2. Add Two Numbers
来源:互联网 发布:电子信息工程 软件方向 编辑:程序博客网 时间:2024/06/09 23:46
Leetcode 2. Add Two Numbers
You are given two non-empty linked lists representing two non-negative integers. The digits are stored inreverse 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.
Example:
Input: (2 -> 4 -> 3) + (5 -> 6 -> 4)Output: 7 -> 0 -> 8Explanation: 342 + 465 = 807.
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) { int carry = 0; ListNode* listNode = new ListNode(0); //创建并初始化listNode ListNode* p1 = l1, *p2 = l2, *p3 = listNode; while(p1 != NULL | p2 != NULL) //两链表不为空 { if(p1 != NULL) //l1链表不为空 { carry += p1->val; // p1 = p1->next; } if(p2 != NULL) { carry += p2->val; p2 = p2->next; } p3->next = new ListNode(carry%10); // 存入p3链表中 p3 = p3->next; carry /= 10; } if(carry == 1) { p3->next = new ListNode(1); //存入p3链表中 } return listNode->next; }};
Python:
# Definition for singly-linked list.# class ListNode:# def __init__(self, x):# self.val = x# self.next = Noneclass Solution: def addTwoNumbers(self, l1, l2): """ :type l1: ListNode :type l2: ListNode :rtype: ListNode """ def V(val): return val is not None result = None pre = None tag = 0 while V(l1) or V(l2): l1_val = V(l1) and l1.val or 0 l2_val = V(l2) and l2.val or 0 val = l1_val + l2_val + tag tag =val / 10 # /10得出进位 node = ListNode(int(val % 10)) # %10得出当前位的值 if result is None: result = node pre = node else: pre.next = node pre =node if V(l1): l1 = l1.next if V(l2): l2 = l2.next if tag == 1: # 判断一次进位的值,需要补上一个node(多出一位) pre.next = ListNode(1) return result
参考:
http://blog.csdn.net/nomasp/article/details/48413977
http://blog.csdn.net/amds123/article/details/68942726 -Python
阅读全文
0 0
- [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 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 2.Add Two Numbers
- LeetCode 2. Add Two Numbers
- Leetcode 2. Add Two Numbers
- 2. Add Two Numbers LeetCode
- leetcode 2. Add Two Numbers
- LeetCode-2. Add Two Numbers
- LeetCode 2. Add Two Numbers
- 2. Add Two Numbers----LeetCode
- 实验教程1:如何在阿里云服务器ECS上安装anaconda,配置远程访问的jupyter notebook
- JAVA输入输出
- 【Scikit-Learn 中文文档】模型选择:选择估计量及其参数
- 【Scikit-Learn 中文文档】无监督学习: 寻求数据表示
- EditPlus取消bak文件生成
- Leetcode 2. Add Two Numbers
- 【Scikit-Learn 中文文档】把它们放在一起
- python flask api接口开发编程
- JAVASE之简易IO
- 【Scikit-Learn 中文文档】寻求帮助
- 重拾springmvc(一)
- 固定元素宽高比
- Java基础之if语句案例
- Json格式数据HTML页面中格式化显示,可折叠,可展开