• 面试题 02.05. 链表求和(链表)


    1. 题目

    给定两个用链表表示的整数,每个节点包含一个数位。

    这些数位是反向存放的,也就是个位排在链表首部。

    编写函数对这两个整数求和,并用链表形式返回结果。

    2. 示例

    示例1:

    输入:(7 -> 1 -> 6) + (5 -> 9 -> 2),即617 + 295

    输出:2 -> 1 -> 9,即912

    3. 题解

    这道题的思路很简单,只需要针对每一位计算即可。

    遍历两个链表,若两个都不为空,直接l1.val+l2.val+temp,其中temp为进位;

    若仅有一个链表不为空,则l1.val(或l2.val) + temp;

    遍历结束后,因为还要看temp是否为0,若不为0,则需要加入链表。

    4. Code

     1 public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
     2         int temp = 0;
     3         ListNode listNode = new ListNode(0);
     4         ListNode cur = listNode;
     5         int l = 0;
     6         while(l1 != null || l2 != null) {
     7             if(l1 != null && l2 != null) {
     8                 l = l1.val + l2.val + temp;
     9                 l1 = l1.next;
    10                 l2 = l2.next;
    11             } else if(l1 != null) {
    12                 l = l1.val + temp;
    13                 l1 = l1.next;
    14             } else if(l2 != null){
    15                 l = l2.val + temp;
    16                 l2 = l2.next;
    17             }
    18             int out = l % 10;
    19             cur.next = new ListNode(out);
    20             cur = cur.next;
    21             temp = l / 10;
    22         }
    23         if(temp != 0) {
    24             cur.next = new ListNode(temp);
    25             cur = cur.next;
    26         }
    27         return listNode.next;
    28     }
  • 相关阅读:
    Nginx安装配置
    HTTPS原理(三次握手)
    Linux常用指令
    MVC思想
    MySQL简介
    PHP面向对象(二)
    PHP面向对象(一)
    php循环用法
    如何删掉git版本库master分支的第一个commit
    韦东山嵌入式Linux学习笔记08--中断体系结构
  • 原文地址:https://www.cnblogs.com/haifwu/p/14835333.html
Copyright © 2020-2023  润新知