MENU

基于单链表的大整数相加

2019 年 07 月 08 日 • 阅读: 2985 • 算法

问题

给定两个分别代表非负整数的非空链表,数字以逆序存储于链表中,每个结点包含一位,将两数相加并以链表形式返回。假定两个数都不能以 0 开头,除非它们本身就是 0,你的返回结果也应如此。

样例

  • Input: (2 -> 4 -> 3) + (5 -> 6 -> 4)
  • Output: 7 -> 0 -> 8
  • Explanation: 342 + 465 = 807.

实现

  • class ListNode {
  • int val;
  • ListNode next;
  • ListNode(int x) {
  • val = x;
  • }
  • public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
  • ListNode l3 = new ListNode(0);
  • ListNode p = l3;
  • ListNode pPre = null;
  • while (l1 != null || l2 != null) {
  • if (l1 != null) {
  • p.val += l1.val;
  • }
  • if (l2 != null) {
  • p.val += l2.val;
  • }
  • if (p.val > 9) {
  • p.val -= 10;
  • p.next = new ListNode(1);
  • } else {
  • p.next = new ListNode(0);
  • }
  • if (l1 != null) {
  • l1 = l1.next;
  • }
  • if (l2 != null) {
  • l2 = l2.next;
  • }
  • pPre = p;
  • p = p.next;
  • }
  • if (p.val == 0) {
  • pPre.next = null;
  • }
  • return l3;
  • }
  • }
TG 大佬群 QQ 大佬群

最后编辑于: 2019 年 08 月 02 日
返回文章列表 文章二维码
本页链接的二维码
打赏二维码
添加新评论

Loading captcha...

  • OωO
  • |´・ω・)ノ
  • ヾ(≧∇≦*)ゝ
  • (☆ω☆)
  • (╯‵□′)╯︵┴─┴
  •  ̄﹃ ̄
  • (/ω\)
  • ∠( ᐛ 」∠)_
  • (๑•̀ㅁ•́ฅ)
  • →_→
  • ୧(๑•̀⌄•́๑)૭
  • ٩(ˊᗜˋ*)و
  • (ノ°ο°)ノ
  • (´இ皿இ`)
  • ⌇●﹏●⌇
  • (ฅ´ω`ฅ)
  • (╯°A°)╯︵○○○
  • φ( ̄∇ ̄o)
  • ヾ(´・ ・`。)ノ"
  • ( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
  • (ó﹏ò。)
  • Σ(っ °Д °;)っ
  • ( ,,´・ω・)ノ"(´っω・`。)
  • ╮(╯▽╰)╭
  • o(*////▽////*)q
  • >﹏<
  • ( ๑´•ω•) "(ㆆᴗㆆ)
  • (。•ˇ‸ˇ•。)
  • 泡泡
  • 阿鲁
  • 蛆音娘
  • 小埋
  • 颜文字

已有 1 条评论
  1. 强调几点:(该留言由系统自动生成!)
    1. 请不要刷广告,本站没有流量!
    2. 我不回复虚假邮箱,因为回复了你也看不到!
    3. 存在必须回复的隐藏内容时,可以直接使用表情框里的阿鲁表情!