zoukankan      html  css  js  c++  java
  • LeetCode: 2.Add Two Numbers

    题目要求:给定两个非空的链表,且链表里的元素都是非负整数,对这两个链表里的元素进行相加,返回一个新的链表。

    Input: (2 -> 4 -> 3) + (5 -> 6 -> 4)
    Output: 7 -> 0 -> 8

    思考过程:第二个元素进行相加:4+6=10,只保留了个位上的数,原本进位到十位的1加到第三个元素之和上了。

     1 /**
     2  * Definition for singly-linked list.
     3  * public class ListNode {
     4  *     int val;
     5  *     ListNode next;
     6  *     ListNode(int x) { val = x; }
     7  * }
     8  */
     9 public class Solution {
    10     public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
    11         ListNode c1 = l1;
    12         ListNode c2 = l2;
    13         ListNode sentinel = new ListNode(0);
    14         ListNode d = sentinel;
    15         int sum = 0;
    16         //当两个链表的next均不为null时
    17         while (c1 != null || c2 != null) {
    18             //将进位累加到下一个元素和
    19             sum /= 10;
    20             if (c1 != null) {
    21                 sum += c1.val;
    22                 c1 = c1.next;
    23             }
    24             if (c2 != null) {
    25                 sum += c2.val;
    26                 c2 = c2.next;
    27             }
    28             //只保留个位上的数
    29             d.next = new ListNode(sum % 10);
    30             d = d.next;
    31         }
    32         //如果最后一对元素之和大于10,将进位1直接给下一个节点
    33         if (sum / 10 == 1)
    34             d.next = new ListNode(1);
    35         return sentinel.next;
    36     }
    37 }
  • 相关阅读:
    C#窗体 LISTVIEW
    C#窗体布局方式
    C#窗体计算器
    操作数据库(对战小游戏)
    C#窗体
    操作数据库(数据操作类)
    操作数据库(增删改)
    操作数据库(防注入攻击)
    DO.NET操作数据库
    projecteuler Problem 9 Special Pythagorean triplet
  • 原文地址:https://www.cnblogs.com/huiAlex/p/7808407.html
Copyright © 2011-2022 走看看