首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
链表相加(二)
[编程题]链表相加(二)
热度指数:216421
时间限制:C/C++ 2秒,其他语言4秒
空间限制:C/C++ 256M,其他语言512M
算法知识视频讲解
假设链表中每一个节点的值都在 0 - 9 之间,那么链表整体就可以代表一个整数。
给定两个这种链表,请生成代表两个整数相加值的结果链表。
数据范围:
,链表任意值
要求:空间复杂度
,时间复杂度
例如:链表 1 为 9->3->7,链表 2 为 6->3,最后生成新的结果链表为 1->0->0->0。
示例1
输入
[9,3,7],[6,3]
输出
{1,0,0,0}
说明
如题面解释
示例2
输入
[0],[6,3]
输出
{6,3}
备注:
说明:本题目包含复杂数据结构ListNode,
点此查看相关信息
马上挑战
算法知识视频讲解
提交运行
算法知识视频讲解
添加笔记
求解答(20)
邀请回答
收藏(1186)
分享
提交结果有问题?
525个回答
595篇题解
开通博客
LaN666
发表于 2021-07-18 15:46:55
精华题解
题目思路:假设链表中每一个节点的值都在 0 - 9 之间,那么链表整体就可以代表一个整数。我们知道题目已经限定了每个节点的值都不为负数了,所以我们就可以不考虑符号的问题了,那么就很简单了。我们先看一下题目给的例子: 例如:链表 1 为 9->3->7,链表 2 为 6->3,最后
展开全文
牛客题解官
发表于 2022-04-22 11:32:01
精华题解
题目主要信息: 给定两个链表,每个链表中节点值都是0-9,每个链表就可以表示一个数字 将两个链表表示的数字相加,结果也存在链表中 举一反三: 学习完本题的思路你可以解决如下题目: BM1.反转链表 BM86.大数加法 方法:反转链表法(推荐使用) 思路: 既然链表每个节点表示数字的每一位,那相加
展开全文
ajaj
发表于 2021-07-14 13:29:56
精华题解
思路: 从题中给出的有效信息: 一个链表代表一个整数,返回多个链表的相加结果 故此顺位迭代就可以了,链表的问题大多借助栈和队列的结构思想 方法一: 具体做法:申请两个栈空间和一个标记位,然后将两个栈中内容依次相加,将结果倒插入新节点中。 具体过程如下图所示: import java.util.
展开全文
Eagle-Q
发表于 2020-09-02 21:30:00
/** struct ListNode { int val; struct ListNode *next; }; / class Solution {public: /* * * @param head1 ListNode类 * @param head2 ListN
展开全文
小洋芋热爱NLP
发表于 2021-03-04 19:04:01
- 1、题目描述: - 2、题目链接: https://www.nowcoder.com/practice/c56f6c70fb3f4849bc56e33ff2a50b6b?tpId=188&tqId=37538&rp=1&ru=%2Factivity%2Foj&qr
展开全文
宫水三叶的刷题日记
发表于 2021-08-27 14:01:58
朴素解法(哨兵技巧) 这是道模拟题,模拟人工竖式做加法的过程: 从最低位至最高位,逐位相加,如果和大于等于 10,则保留个位数字,同时向前一位进 1 如果最高位有进位,则需在最前面补 1。 做有关链表的题目,有个常用技巧:添加一个虚拟头结点(哨兵),帮助简化边界情况的判断。 一些细节:由于给定的两
展开全文
shredderzwj
发表于 2021-11-30 14:26:54
# class ListNode: # def __init__(self, x): # self.val = x # self.next = None # # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @para
展开全文
青鸟&飞鱼
发表于 2021-10-07 10:13:10
程序分为两个部分: 1. 翻转链表 2. 进位相加 取值(由于当指针为空不允许value域作加减运算,且要依据空指针作为结束循环条件,所以这么用) 进位加法 赋值(分配链接新节点) 最麻烦的就是指针越界问题,希望随着经验增加,可以快速解决吧。 纠结变量用的有点多,C语言编写,寻求改进办法,请
展开全文
小洋芋热爱NLP
发表于 2021-03-04 19:58:34
- 1、题目描述: - 2、题目链接: https://www.nowcoder.com/practice/c56f6c70fb3f4849bc56e33ff2a50b6b?tpId=188&tqId=37538&rp=1&ru=%2Factivity%2Foj&qr
展开全文
子夜降晴空
发表于 2021-03-12 15:39:55
static const auto io_sync_off=[]() { //turn off sync std::ios::sync_with_stdio(false); //untie in/out stream; std::cin.tie(nullptr);
展开全文
小时光s3o
发表于 2021-08-03 12:53:37
题解 | #两个链表生成相加链表#C++ 解法,链表相加(需翻转) /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNod
展开全文
Grimm、
发表于 2022-10-16 11:47:41
反转链表 package main import . "nc_tools" /* * type ListNode struct{ * Val int *&n
展开全文
太阳hxy
发表于 2023-07-12 14:27:32
链表相加(二) 图解: 链接 思路: 1.将原先的两个表进行反转,获得新的表头,使得低位对齐 2.将两个表对应节点相加 3.将最后的相加的结果的表再进行一次反转 代码 import java.util.*; /* * public class ListNode { * int
展开全文
问题信息
模拟
链表
难度:
525条回答
1186收藏
14648浏览
热门推荐
通过挑战的用户
查看代码
牛客63053...
2023-03-08 10:33:10
牛客60976...
2023-02-04 19:27:02
第四单元123
2023-01-30 11:11:51
Zhaaaaaaa
2023-01-20 01:16:08
牛客30382...
2022-12-24 16:12:23
相关试题
有两个文件context.txt和...
去哪儿旅行
模拟
评论
(4)
一个文件里有10万个随机正整数,按...
去哪儿旅行
堆
模拟
评论
(4)
一个10*10的矩阵(可以理解为棋...
去哪儿旅行
模拟
评论
(0)
执行以下代码,如果想要 box1 ...
HTML
前端工程师
蘑菇街
2019
CSS
评论
(1)
团队已有 95% 的语句覆盖率,但...
软件测试
评论
(1)
链表相加(二)
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题
import java.util.*; /* * public class ListNode { * int val; * ListNode next = null; * public ListNode(int val) { * this.val = val; * } * } */ public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param head1 ListNode类 * @param head2 ListNode类 * @return ListNode类 */ public ListNode addInList (ListNode head1, ListNode head2) { // write code here } }
/** * struct ListNode { * int val; * struct ListNode *next; * ListNode(int x) : val(x), next(nullptr) {} * }; */ class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param head1 ListNode类 * @param head2 ListNode类 * @return ListNode类 */ ListNode* addInList(ListNode* head1, ListNode* head2) { // write code here } };
#coding:utf-8 # class ListNode: # def __init__(self, x): # self.val = x # self.next = None # # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param head1 ListNode类 # @param head2 ListNode类 # @return ListNode类 # class Solution: def addInList(self , head1 , head2 ): # write code here
using System; using System.Collections.Generic; /* public class ListNode { public int val; public ListNode next; public ListNode (int x) { val = x; } } */ class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param head1 ListNode类 * @param head2 ListNode类 * @return ListNode类 */ public ListNode addInList (ListNode head1, ListNode head2) { // write code here } }
/* * function ListNode(x){ * this.val = x; * this.next = null; * } */ /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param head1 ListNode类 * @param head2 ListNode类 * @return ListNode类 */ function addInList( head1 , head2 ) { // write code here } module.exports = { addInList : addInList };
val = $x; } }*/ /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param head1 ListNode类 * @param head2 ListNode类 * @return ListNode类 */ function addInList( $head1 , $head2 ) { // write code here }
# class ListNode: # def __init__(self, x): # self.val = x # self.next = None # # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param head1 ListNode类 # @param head2 ListNode类 # @return ListNode类 # class Solution: def addInList(self , head1: ListNode, head2: ListNode) -> ListNode: # write code here
package main import "fmt" import . "nc_tools" /* * type ListNode struct{ * Val int * Next *ListNode * } */ /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param head1 ListNode类 * @param head2 ListNode类 * @return ListNode类 */ func addInList( head1 *ListNode , head2 *ListNode ) *ListNode { // write code here }
/** * struct ListNode { * int val; * struct ListNode *next; * }; */ /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param head1 ListNode类 * @param head2 ListNode类 * @return ListNode类 */ struct ListNode* addInList(struct ListNode* head1, struct ListNode* head2 ) { // write code here }
# class ListNode # attr_accessor :val, :next # # def initialize(val = 0, _next = nil) # @val, @next = val, _next # end # end # # # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param head1 ListNode类 # @param head2 ListNode类 # @return ListNode类 # class Solution def addInList(head1, head2) # write code here end end
/** * class ListNode(var val: Int) { * var next: ListNode = null * } */ object Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param head1 ListNode类 * @param head2 ListNode类 * @return ListNode类 */ def addInList(head1: ListNode,head2: ListNode): ListNode = { // write code here } }
/** * class ListNode(var `val`: Int) { * var next: ListNode? = null * } */ object Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param head1 ListNode类 * @param head2 ListNode类 * @return ListNode类 */ fun addInList(head1: ListNode?,head2: ListNode?): ListNode? { // write code here } }
import java.util.*; /* * public class ListNode { * int val; * ListNode next = null; * public ListNode(int val) { * this.val = val; * } * } */ public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param head1 ListNode类 * @param head2 ListNode类 * @return ListNode类 */ public ListNode addInList (ListNode head1, ListNode head2) { // write code here } }
/*class ListNode { * val: number * next: ListNode | null * constructor(val?: number, next?: ListNode | null) { * this.val = (val===undefined ? 0 : val) * this.next = (next===undefined ? null : next) * } * } */ /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param head1 ListNode类 * @param head2 ListNode类 * @return ListNode类 */ export function addInList(head1: ListNode, head2: ListNode): ListNode { // write code here }
/** * public class ListNode { * public var val: Int * public var next: ListNode? * public init(_ val: Int = 0, _ next: ListNode? = nil) { * self.val = val * self.next = next * } * } */ public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param head1 ListNode类 * @param head2 ListNode类 * @return ListNode类 */ func addInList ( _ head1: ListNode?, _ head2: ListNode?) -> ListNode? { // write code here } }
/** * #[derive(PartialEq, Eq, Debug, Clone)] * pub struct ListNode { * pub val: i32, * pub next: Option
> * } * * impl ListNode { * #[inline] * fn new(val: i32) -> Self { * ListNode { * val: val, * next: None, * } * } * } */ struct Solution{ } impl Solution { fn new() -> Self { Solution{} } /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param head1 ListNode类 * @param head2 ListNode类 * @return ListNode类 */ pub fn addInList(&self, head1: Option
>, head2: Option
>) -> Option
> { // write code here } }
[9,3,7],[6,3]
{1,0,0,0}
[0],[6,3]
{6,3}