数据结构与算法
左神数据结构算法Day5
00 分钟
2024-9-20
2024-9-20
tags
date
type
status
slug
summary
category
password
icon

算法讲解011【入门】链表入门题目-两个链表相加

链表入门题目-两个链表相加大纲

前置知识:理解链表及其基本调整 建议:做过这个题的同学跳过
  • 给你两个 非空 的链表,表示两个非负的整数
  • 它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字
  • 请你将两个数相加,并以相同形式返回一个表示和的链表
  • 你可以假设除了数字 0 之外,这两个数都不会以 0 开头
链表题目在笔试、面试中的意义就是检验coding能力如何
更难的题目会在【必备】课程里讲述

视频笔记

  • 这题就是考链表的调整,不用想着绕过题目
  • 先准备两个链表ans = null , cur = null,定义一个carry = 0表示s是否进位
  • for 循环 终止条件, h1 和 h2都为空,每次h1和h2都会跳,到空不再跳
    • 定义 sum 作为中间存储变量, val = sum %10表示这一位数字实际结果(其实就是不管进不进为位,只要个位) ,carry=sum / 10 判断要不要进位
    • 接着 if else 判断建表没有(ans是否为空),如果为空, 创建一个ans节点,存放val
      • ans 只有一开始两个数字相加后,作为头节点创建,后续不再使用
      • 否则让 curr.next 指向新的节点,并且这个节点存放新的 val,然后让 curr 指向 curr.next
      • 如此循环,在循环判断里头,要注意如果有一个链表走完了,那么有一个 h 要为 0 ,另一个继续取节点
  • 最后判断还有没有进位,如果有进位也要把它加上去,然后返回 ans
  • 如图
    • notion image
上一篇
C数据结构
下一篇
左神数据结构算法Day4

评论
Loading...