学习了链表结构,链表中元素的访问,对象指针的初始化与赋值,链表的创建(多个节点链接起来),进位计算的表达。

100ms

/**
* 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* sum = new ListNode();
ListNode* tmp = sum;
int carry = ; while(l1 || l2)
{
if(l1)
{
carry += l1->val;
l1 = l1->next;
}
if(l2)
{
carry += l2->val;
l2 = l2->next;
} tmp->next = new ListNode(carry % );
carry /= ;
tmp = tmp->next;
} if(carry)
tmp->next = new ListNode(carry); return sum->next;
}
};

68ms

class Solution {
public:
ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {
ListNode *L = new ListNode(), *p = L;
int m = ; //进位值
int x, y; //保存l1 l2节点的值 while(l1 || l2){ //题目中的链表是没有header的
x = (l1 != NULL) ? l1->val : ;
y = (l2 != NULL) ? l2->val : ;
p->val = (x + y + m) % ; m = (x + y + m) > ;
cout << x << y << m << endl; l1 = (l1 != NULL) ? l1->next : NULL;
l2 = (l2 != NULL) ? l2->next : NULL; p->next = ((l1 || l2) || m != ) ? new ListNode(m) : NULL; // 如果仅判断(l1 || l2)的话,5+5 的情况会丢失进位
p ? p = p->next : ;
}
return L;
}
};

【Leecode】两数相加的更多相关文章

  1. [CareerCup] 18.1 Add Two Numbers 两数相加

    18.1 Write a function that adds two numbers. You should not use + or any arithmetic operators. 这道题让我 ...

  2. ✡ leetcode 167. Two Sum II - Input array is sorted 求两数相加等于一个数的位置 --------- java

    Given an array of integers that is already sorted in ascending order, find two numbers such that the ...

  3. [Swift]LeetCode2. 两数相加 | Add Two Numbers

    You are given two non-empty linked lists representing two non-negative integers. The digits are stor ...

  4. [Swift]LeetCode445. 两数相加 II | Add Two Numbers II

    You are given two non-empty linked lists representing two non-negative integers. The most significan ...

  5. day2——两数相加

    // 小白一名,0算法基础,艰难尝试算法题中,若您发现本文中错误, 或有其他见解,往不吝赐教,感激不尽,拜谢. 领扣 第2题 今日算法题干//给定两个非空链表来表示两个非负整数.位数按照逆序方式存储, ...

  6. leetcode 刷题(2)--- 两数相加

    给定两个非空链表来表示两个非负整数.位数按照逆序方式存储,它们的每个节点只存储单个数字.将两数相加返回一个新的链表. 你可以假设除了数字 0 之外,这两个数字都不会以零开头. 示例: 输入:(2 -& ...

  7. Leetcode_两数相加_python

    小编从今天起要开始分享一些Leetcode代码,通过好好练习编程能力,争取以后找一份好工作. 题目:两数相加 # Definition for singly-linked list. # class ...

  8. Leetcode(二)两数相加

    两数相加 题目描述 给出两个非空的链表用来表示两个非负的整数.其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字. 如果,我们将这两个数相加起来,则会返回一个新的链 ...

  9. 【LeetCode】两数相加

    题目描述 给出两个非空的链表用来表示两个非负的整数.其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字. 如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和. ...

  10. 两数之和,两数相加(leetcode)

    我们都知道算法是程序员成长重要的一环,怎么才能提高算法呢, 出来在网上看视频之外,动手练习是非常重要的.leetcode 就是一个非常好的锻炼平台. 1. 两数之和,在 leetcode 里面是属于 ...

随机推荐

  1. git 合并分支到master

    git 合并分支到master   假如我们现在在dev分支上,刚开发完项目,执行了下列命令 git add .git commit -m ‘dev'git push -u origin dev 然后 ...

  2. 精进之路之AQS及相关组件

    AQS ( AbstractQueuedSynchronizer)是一个用来构建锁和同步器的框架,使用AQS能简单且高效地构造出应用广泛的大量的同步器,比如我们提到的ReentrantLock,Sem ...

  3. 二叉树:B+tree等

    二叉树:(树是一种可以递归定义数据结构) 度:节点的个数 深度:层数(即从根点到叶子节点的层数) 满二叉树:指底层叶子节点左右均存在的二叉树. 完全二叉树:指底层叶子节点的右侧均存在的二叉树. 一般二 ...

  4. shell、redis使用

    一.跳板机 来源:什么是跳板机 SSH[Secure Shell](远程连接工具)连接原理:ssh服务是一个守护进程(demon),系统后台监听客户端的连接,ssh服务端的进程名为sshd,负责实时监 ...

  5. 完美解决win10家庭版本系统无法远程连接问题

    版权声明:本文转载.原文: https://blog.csdn.net/rainmaple20186/article/details/80913191 近期接入同一局域网的服务器,发现在连接的时候,报 ...

  6. 修改hots指向

    C:\Windows\System32\drivers\etc hots文件 IP 服务器名称

  7. MySQL-01-基础

    大纲 1)mysql存储结构: 数据库 -> 表 -> 数据   sql语句 2)管理数据库: 增加: create database 数据库 default character utf8 ...

  8. 解决: Homestead 环境下, yarn install --no-bin-links, NPM run dev, 命令报错

    执行以下命令: 1 $ rm -rf node_modules 2 $ yarn config set registry http://registry.cnpmjs.org 3 $ yarn ins ...

  9. python rabbitMQ持久化队列消息

    import pika connection = pika.BlockingConnection( pika.ConnectionParameters('localhost'))#建立一个最基本的so ...

  10. SDL2.0.9源码分析

    1.首先 2.0.9编译so出来跟一直不一样,多了个hidapi  库 2.跟Tocy的对比,SDLmain 执行的路径不一样,一个是/src/main/android/SDL_android_mai ...