链表系列一>两数相加

题目: 链接: link解析:方法:代码:代码语言:javascript代码运行次数:0运行复制*** Definition for singly-linked list.* public class ListNode {* in

链表系列一>两数相加

题目:

链接: link

解析:

方法:

代码:

代码语言:javascript代码运行次数:0运行复制
/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode() {}
 *     ListNode(int val) { this.val = val; }
 *     ListNode(int val, ListNode next) { this.val = val; this.next = next; }
 * }
 */
class Solution {
    public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
        //创建虚拟头节点返回结果:
        ListNode cur1 = l1, cur2 = l2;
        ListNode newhead = new ListNode(0);
        int t = 0;

        //用来尾插操作的指针
        ListNode prev = newhead;

        while(cur1 != null ||  cur2 != null || t != 0){
            //先加第一个链表
           if(cur1 != null){
                t += cur1.val;
                cur1 = cur1.next;
           }

            //先加第二个链表
           if(cur2 != null){
                t += cur2.val;
                cur2 = cur2.next;
           }

           //把t尾插到虚拟头节点
           prev.next = new ListNode(t%10);//去t的个位创建新节点
           t /= 10;
           prev = prev.next;
        }

        return newhead.next;
    }
}

链表常用技巧:

1.可以创建虚拟头节点来进行最后的返回,因为题目的第一个节点一般都存有数据

2.创建新的引用来进行变量,来进行头插和尾插

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。 原始发表:2025-04-23,如有侵权请联系 cloudcommunity@tencent 删除变量技巧链表数据指针

发布者:admin,转转请注明出处:http://www.yc00.com/web/1747552263a4652177.html

相关推荐

  • 链表系列一>两数相加

    题目: 链接: link解析:方法:代码:代码语言:javascript代码运行次数:0运行复制*** Definition for singly-linked list.* public class ListNode {* in

    4小时前
    10

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信