LeetCode 2 链表操作(带进位的加法运算)
来源:互联网 发布:哈车钥匙淘宝图片 编辑:程序博客网 时间:2024/05/22 10:36
本题忽悠能力很强,需要我们仔细考虑 没有涉及到什么什么算法,只不过就是链表的操作。
题意为
给两个链表,每个链表有两个元素,一个是存储的值,另一个是下一个结点的指针。我们需要做的操作就是遍历这两个链表然后把值相加,如果有进位的话也要处理进位。
值得注意的一点就是不要让指针为空,和链表长度不同的处理。还有就是如果最后有进位的话就新建一个结点放在最后就好。说什么反向数字我觉得就是坑。还不如直接说链表。
c#也可以用指针的但是要配置什么什么变量什么什么什么编译器就没弄。
c# code
/**
* 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)
{
if (l1 == null) return l2;
if (l2 == null) return l2;
ListNode ret = l1;
int carry=0;
while(l1.next!=null&&l2.next!=null)
{
l1.val = l1.val + l2.val + carry;
carry = l1.val / 10;
l1.val = l1.val % 10;
l2 = l2.next;
l1 = l1.next;
}
l1.val = l1.val + l2.val + carry;
carry = l1.val / 10;
l1.val = l1.val % 10;
if (l1.next != null)
{
l1 = l1.next;
while (l1.next != null)
{
l1.val += carry;
carry = l1.val / 10;
l1.val = l1.val % 10;
l1 = l1.next;
}
l1.val += carry;
carry = l1.val / 10;
l1.val = l1.val % 10;
if (carry > 0)
{
l1.next = new ListNode(carry);
}
}
else if (l2.next != null)
{
l1.next = l2.next;
l1 = l1.next;
while (l1.next != null)
{
l1.val += carry;
carry = l1.val / 10;
l1.val = l1.val % 10;
l1 = l1.next;
}
l1.val += carry;
carry = l1.val / 10;
l1.val = l1.val % 10;
if (carry > 0)
{
l1.next = new ListNode(carry);
}
}
else
{
if (carry > 0)
{
l1.next = new ListNode(carry);
}
}
return ret;
}
}
- LeetCode 2 链表操作(带进位的加法运算)
- leetcode 371. Sum of Two Integers 位运算 + 加法操作
- 带进位的右移
- 用位操作实现加法运算
- LeetCode 位运算操作集锦(一)
- 面试算法题:不用+、-、×、÷数字运算符做加法 (位运算实现加法操作)
- 带进位的循环左移RCL
- 带进(借)位的加减法(1102)
- 翻转链表查找链表的倒数第k个节点位运算加法
- 位运算实现两个数的加法
- 位运算总结2:利用位运算实现加法
- [ctest]位运算实现加法(转)
- 位运算实现加法
- 位运算实现加法
- 位运算实现加法
- 位运算 实现加法
- 位运算实现加法
- 位运算做加法
- iOS 10应用开发基础教程
- IE8的css hack \9 使用说明
- 【软件设计模式】设计原则小结
- Linux Cache 机制探究
- leetcode 206 Reverse Linked List(难易度:Easy)
- LeetCode 2 链表操作(带进位的加法运算)
- C# 委托、事件、回调
- c#读取图片文件信息并转换成16进制文本方法
- oracle用户密码过期的处理方法
- 友盟集成新浪登录分享5668
- 苹果开发 笔记(74)GDataXML 解析 xml
- plsql数据库密码过期的解决方法
- CSS伪类的概念及作用
- 整数转换成罗马数字和罗马数字转换成整数