首页 > 其他分享 >宝宝精刷题笔记 面试题 02.05. 链表求和

宝宝精刷题笔记 面试题 02.05. 链表求和

时间:2022-11-27 13:45:48浏览次数:46  
标签:面试题 val 02.05 None next 链表 flag l2 l1

题目描述

给定两个用链表表示的整数,每个节点包含一个数位。

这些数位是反向存放的,也就是个位排在链表首部。

编写函数对这两个整数求和,并用链表形式返回结果。

示例1:

输入:(7 -> 1 -> 6) + (5 -> 9 -> 2),即617 + 295
输出:2 -> 1 -> 9,即912

进阶:思考一下,假设这些数位是正向存放的,又该如何解决呢?

示例2:

输入:(6 -> 1 -> 7) + (2 -> 9 -> 5),即617 + 295
输出:9 -> 1 -> 2,即912

解题思路

# Definition for singly-linked list.
# class ListNode(object):
#     def __init__(self, x):
#         self.val = x
#         self.next = None

class Solution(object):
    def addTwoNumbers(self, l1, l2):
        flag=False
        a=l1
        while l2:
            if flag:
                l1.val = l1.val+l2.val+1
                flag = False
            else:
                l1.val += l2.val 
            if l1.val > 9:
                flag=True
                l1.val = l1.val % 10
            if l2.next is not None and l1.next is None:     ##L2比L1长,则在L1后面插入0
                l1.next = ListNode(0)
            elif l1.next is None and flag:   
                flag = False
                l1.next = ListNode(1)
            l1 = l1.next
            l2 = l2.next
        while l1:
            if flag:
                l1.val += 1
                flag=False
            if l1.val>9 and l1.next is not None:
                l1.val %= 10
                flag = True
            elif l1.val>9 and l1.next is None:
                l1.val %= 10
                l1.next = ListNode(1)
                break
            l1 = l1.next
        return a

标签:面试题,val,02.05,None,next,链表,flag,l2,l1
From: https://www.cnblogs.com/cleveresthuang/p/16929535.html

相关文章

  • 【面试题】 面试官为啥总是喜欢问前端路由实现方式?
    背景从事前端开发的同学,在实际工作中,一定会接触过路由这个概念,同时在面试的过程中,经常会被问及关于前端路由的实现方式,面试官到底想考察什么?在现在SPA单页面模式盛行,前后端......
  • 数据结构初阶--双向循环链表(讲解+类模板实现)
    带头双向链表的结构看下面的图,就是我今天要给大家分享有结构——带头双向循环链表。这里的头是不存放任何数据的,就是一个哨兵卫的头结点。用代码来表示每一个节点就是这......
  • 【数据结构】(2)顺序表和链表
    (1)线性表数据结构实际两种结构1.物理结构(内存中如何储存)2.逻辑结构(是我们想像出来的)线性表(linearlist)是n个具有相同特性的数据元素的有限序列。线性表是一种在实际中广泛使......
  • 准备面试题【面试】
    前言写作于2022-11-1319:27:08发布于2022-11-2016:34:44准备程序员囧辉​​我要进大厂​​​​面试阿里,HashMap这一篇就够了​​​​Java基础高频面试题(2022年最新版)......
  • Linux面试题2:网络IO模型 & IO多路复用
    网络IO先确定一下范围,我们讨论的都是网络IO,现阶段计算机早已经从CPU密集型转换成网络IO密集型,所以网络io的类型对于服务响应而言更重要。五种IO模型依据Unix的IO分类,网......
  • javascript面试题
    1.null和undefined区别首先Undefined和Null都是基本数据类型,这两个基本数据类型分别都只有一个值,就是undefined和null。undefined代表的含义是未定义,null代表......
  • 面试题系列:网络篇夺命连环12问
      一、谈一谈你对TCP/IP四层模型,OSI七层模型的理解? 为了增强通用性和兼容性,计算机网络都被设计成层次机构,每一层都遵守一定的规则。 因此有了OSI这样一个抽......
  • leetcode 24. 两两交换链表中的节点 js实现
    给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。示例1:输入:head=[1,2,3,4]输出:[2,......
  • 算法6:LeetCode_合并两个有序链表
    题目:将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 输入:l1=[1,2,4],l2=[1,3,4]   输出:[1,1,2,3,4,4]......
  • 寻找链表相交结点问题
    寻找链表相交结点问题作者:Grey原文地址:博客园:寻找链表相交结点问题CSDN:寻找链表相交结点问题题目描述给定两个可能有环也可能无环的单链表,头节点head1和head2。请实......