• [LeetCode] Add Two Numbers


    You are given two linked lists representing two non-negative numbers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and return it as a linked list.

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

     1 /**
     2  * Definition for singly-linked list.
     3  * struct ListNode {
     4  *     int val;
     5  *     ListNode *next;
     6  *     ListNode(int x) : val(x), next(NULL) {}
     7  * };
     8  */
     9 class Solution {
    10 public:
    11     ListNode *addTwoNumbers(ListNode *l1, ListNode *l2) {
    12         ListNode *head = new ListNode(0);
    13         ListNode *p = head, *p1 = l1, *p2 = l2;
    14         int val, val1, val2;
    15         int carry = 0;
    16         while (p1 != NULL || p2 != NULL) {
    17             val1 = val2 = 0;
    18             if (p1 != NULL) {
    19                 val1 = p1->val;
    20                 p1 = p1->next;
    21             }
    22             if (p2 != NULL) {
    23                 val2 = p2->val;
    24                 p2 = p2->next;
    25             }
    26             val = val1 + val2 + carry;
    27             carry = val / 10;
    28             val %= 10;
    29             p->next = new ListNode(val);
    30             p = p->next;
    31         }
    32         if (carry != 0) {
    33             p->next = new ListNode(carry);
    34         }
    35         ListNode *sum = head->next;
    36         delete head;
    37         return sum;
    38     }
    39 };
  • 相关阅读:
    MISP版本嵌入式QT编译时出现mips-linux-gcc command not found
    数据传输对象(DTO)介绍及各类型实体比较
    signalR例子
    WebAPI GET和POST请求的几种方式
    github教程
    Asp.net MVC + EF + Spring.Net 项目实践3
    SpringMVC
    SignalR
    SignalR的实时高频通讯
    开发视频教程
  • 原文地址:https://www.cnblogs.com/easonliu/p/4321131.html
Copyright © 2020-2023  润新知