返回轨道
算法 · 2026-05-14 · 16 阅读

P195 链表加一

算法 16 阅读

信号摘要

难度:Medium · 时长:06:09 · leetcode 369 · lintcode 904

P195 链表加一

未对外公开播放权限
点击查看说明

描述

这个题目说的是,给你一个不为空的单链表,它表示一个非负整数。链表中的每个节点值都位于 0~9 之间,代表整个非负整数中的一位。你要将这个非负整数加 1,然后返回结果链表。

比如说,给你的链表是:

1 -> 2 -> 4

它表示整数 124,加 1 等于 125,于是你要返回链表:

1 -> 2 -> 5

相关视频:数组加一

代码

public class AlgoCasts {

  public class ListNode {
    int val;
    ListNode next;

    ListNode(int x) {
      val = x;
    }
  }

  // Time: O(n), Space: O(1)
  public ListNode plusOne(ListNode head) {
    ListNode maybe = new ListNode(0), notNine = maybe;
    maybe.next = head;
    for (ListNode p = head; p != null; p = p.next)
      if (p.val != 9)
        notNine = p;
    notNine.val += 1;
    for (ListNode p = notNine.next; p != null; p = p.next)
      p.val = 0;
    if (notNine == maybe) return maybe;
    else return head;
  }

}

📡 通讯频道