首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >《链表篇》---两数相加(中等)

《链表篇》---两数相加(中等)

作者头像
用户11288958
发布2025-01-17 14:06:39
发布2025-01-17 14:06:39
1520
举报
文章被收录于专栏:学习学习

题目传送门

方法一:迭代

文字描述看代母注释

代码语言:javascript
复制
class Solution {

    public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
        //定义头结点和当前节点
        ListNode head = null,cur = null;
        //carry记录进位情况。
        int carry = 0; 
 
        while(l1 != null || l2 != null){
            //判断节点是否为null。如果不为null则赋值
            int n1 = l1 != null ? l1.val : 0;
            int n2 = l2 != null ? l2.val : 0;
            //计算两个节点的和。并且若有进位,加上进位。
            int sum = n1 + n2 + carry;

            //如果头节点为空,则新建节点
            if(head == null){
                head = cur = new ListNode(sum%10);
            }else{ //不为空则新添节点
                cur.next = new ListNode(sum%10);
                cur = cur.next;
            }
            //计算进位的值
            carry = sum /10;

            //不为null则向后移动
            if(l1 != null){
                l1 = l1.next;
            }
            if(l2 != null){
                l2 = l2.next;
            }
        }
        //最后若有进位。则新添进位值的节点。
        if(carry > 0){
            cur.next = new ListNode(carry);
        }
        return head;
    }
}

方法二:虚拟头结点+加法运算

代码语言:javascript
复制
class Solution {
    public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
        int carry = 0;
        ListNode newHead = new ListNode(0);
        ListNode cur = newHead;

        while(l1!= null || l2!=null ||carry!=0){
                if(l1 != null){
                    carry = carry + l1.val;
                    l1=l1.next;
                }
                if(l2!=null){
                    carry += l2.val; 
                    l2=l2.next;
                }
                cur.next = new ListNode(carry%10);
                cur = cur.next;
                carry = carry/10;
                
        }
        return newHead.next;
    }
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-12-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 题目传送门
  • 方法一:迭代
  • 方法二:虚拟头结点+加法运算
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档