题目来源:🔒LeetCode 369. 给单链表加一
问题抽象: 给定一个非空 单向链表(头节点 head),表示一个 非负整数(头节点为最高位,尾节点为个位),要求实现链表的 加一操作,并返回新链表的头节点,满足以下核心需求:
-  操作规则定义: - 从链表尾部(个位)开始执行 加一,逐位处理 进位(当前位 = (val + carry) % 10,进位= (val + carry) // 10);
- 若最高位产生新进位(carry=1),需在链表头部插入值为1的新节点。
 
- 从链表尾部(个位)开始执行 加一,逐位处理 进位(当前位 
-  数据结构要求: - 链表节点结构:class ListNode { int val; ListNode next; };
- 禁止直接修改节点值(需处理进位和节点新增);
- 结果链表需保持原节点顺序(最高位→最低位)。
 
- 链表节点结构:
-  计算约束: - 时间复杂度 O(n)(n为链表长度),空间复杂度 O(1)(需避免递归栈);
- 需通过 链表反转 或 双指针 实现: 
    - 反转链表 → 从新头部(原尾部)开始加一 → 处理进位 → 反转恢复;
- 或定位 最后一个非9节点(避免全为9时遍历两次)。
 
 
- 时间复杂度 O(n)(
-  边界处理: - 链表表示 0(单节点0)→ 加一后为
 
- 链表表示 

 
                   
                   
                   
                   最低0.47元/天 解锁文章
最低0.47元/天 解锁文章
                           
                       
       
           
                 
                 
                 
                 
                 
                
               
                 
                 
                 
                 
                
               
                 
                 扫一扫
扫一扫
                     
                     
              
             
                   1123
					1123
					
 被折叠的  条评论
		 为什么被折叠?
被折叠的  条评论
		 为什么被折叠?
		 
		  到【灌水乐园】发言
到【灌水乐园】发言                                
		 
		 
    
   
    
   
             
					 
					 
					


 
            