leetcode445
/**
* Definition for singly-linked list.
* public class ListNode {
* public int val;
* public ListNode next;
* public ListNode(int x) { val = x; }
* }
*/
public class Solution {
public ListNode AddTwoNumbers(ListNode l1, ListNode l2) {
Stack<ListNode> Q1 = new Stack<ListNode>();
Stack<ListNode> Q2 = new Stack<ListNode>(); while (l1 != null)
{
Q1.Push(l1);
l1 = l1.next;
} while (l2 != null)
{
Q2.Push(l2);
l2 = l2.next;
} var list = new List<ListNode>(); var step = ;
while (Q1.Count > || Q2.Count > )
{
var node1 = new ListNode();
if (Q1.Count > )
{
node1 = Q1.Pop();
} var node2 = new ListNode();
if (Q2.Count > )
{
node2 = Q2.Pop();
} var x = node1.val + node2.val + step;
if (x > )
{
step = ;
}
else
{
step = ;
} var node = new ListNode(x % );
list.Add(node);
}
if (step == )
{
list.Add(new ListNode());
} list.Reverse();
var head = list[];
var temp = head;
for (int i = ; i < list.Count; i++)
{
temp.next = list[i];
temp = list[i];
} return head;
}
}
https://leetcode.com/problems/add-two-numbers-ii/#/description
补充一个python的实现:
class Solution:
def addTwoNumbers(self, l1: ListNode, l2: ListNode) -> ListNode:
stack1 = self.buildStack(l1)
stack2 = self.buildStack(l2)
head = ListNode(-)
carry =
while len(stack1) > or len(stack2) > or carry != :
x = if len(stack1) == else stack1.pop(-)
y = if len(stack2) == else stack2.pop(-)
temp = x + y + carry
carry = if temp <= else
temp = temp %
node = ListNode(temp)
node.next = head.next
head.next = node
return head.next def buildStack(self,node):
stack = []
while node != None:
stack.append(node.val)
node = node.next
return stack
leetcode445的更多相关文章
- 【LeetCode445】 Add Two Numbers II★★
题目描述: 解题思路: 给定两个链表(代表两个非负数),数字的各位以正序存储,将两个代表数字的链表想加获得一个新的链表(代表两数之和). 如(7->2->4->3)(7243) + ...
- [Swift]LeetCode445. 两数相加 II | Add Two Numbers II
You are given two non-empty linked lists representing two non-negative integers. The most significan ...
- leetcode445 Add Two Numbers II
""" You are given two non-empty linked lists representing two non-negative integers. ...
- LeetCode链表解题模板
一.通用方法以及题目分类 0.遍历链表 方法代码如下,head可以为空: ListNode* p = head; while(p!=NULL) p = p->next; 可以在这个代码上进行修改 ...
- LeetCode 445. 两数相加 II(Add Two Numbers II)
445. 两数相加 II 445. Add Two Numbers II 题目描述 给定两个非空链表来代表两个非负整数.数字最高位位于链表开始位置.它们的每个节点只存储单个数字.将这两数相加会返回一个 ...
随机推荐
- 【排序】选择排序,C++实现
# 基本思想 每一趟从待排序的数据元素中选择最小(或最大)的一个元素作为首元素,直到所有元素排完为止. 排序实例 初始关键字 [49 38 65 97 76 13 27 49] 第一趟排序后 13 [ ...
- cocos2d-x 发布win32 release版本后找不到msvcr110.dll
解决方法: 安装Visual C++ Redistributable for Visual Studio 2012 //下载地址 http://www.microsoft.com/zh-CN/down ...
- HDU2161
解题思路:判断素数模板题. #include<cstdio> #include<cstring> #include<algorithm> using namespa ...
- php simple_html_dom
这个真的很好用,如果用正则,就太麻烦了. 首先,下载simple_html_dom,用include_once就可以使用了. 可以直接定位,可以像个对象一样操作,很方便. $ret=file_get_ ...
- HDU - 6214:Smallest Minimum Cut(最小割边最小割)
Consider a network G=(V,E) G=(V,E) with source s s and sink t t . An s-t cut is a partition of nodes ...
- 实用符号Alt+小键盘快输
键盘输入:①Word.写字板.QQ2011等,Alt+Unicode之十进制数:②记事簿.网页框.浏览器之地址栏.TM2009等,Alt+GBK之十进制数. 字符 Unicode 十进制数 GBK ...
- Ubuntu下环境变量设置
[内容来自网络] 相应配置文件介绍: 1) /etc/profile :在登录时,操作系统定制用户环境使用的第一个文件,此文件为系统的每个用户设置环境信息,当用户第一次登录时,改文件被执行 2) /e ...
- SQL Server 2008 R2占用内存越来越大解决方法
最近开发sql server数据库项目的过程中发现了这么一个问题,后台网站内存占用95%,通过任务管理器查看占内存的进程sqlserver.exe,是因为SQL Server 2008 R2运行越久, ...
- error: device not found
C:\Users\Administrator>adb shell error: device not found 出现上面情况,首先检查设备管理器中,安卓的驱动是否安装OK? 如果驱动 ...
- Unit01: Servlet基础 、 HTTP协议
Unit01: Servlet基础 . HTTP协议 在页面上输出当前时间 package web; import java.io.IOException; import java.io.PrintW ...