zoukankan      html  css  js  c++  java
  • letCode-2

    letCode第二题题目如下:

      给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。

    如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。

    事实上,这一题考的就是节点和一点数学知识,分析题意:两个链表,存储两个逆序数,从头结点开始,个位对个位,十位对十位,长度不一定相等,使用链表逆序输出结果。

     

    所以使用一个标志位作为进位运算,代码如下:

    /**
     * Definition for singly-linked list.
     * struct ListNode {
     *     int val;
     *     ListNode *next;
     *     ListNode(int x) : val(x), next(NULL) {}
     * };
     */
    class Solution {
    public:
        ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {
            ListNode * result = new ListNode(0);
            int carry = 0;
            ListNode* curr = result;
            //有进位,任意链表均有值
            while(l1!=NULL || l2 != NULL | carry!=0){
           //这里分开判断
    if (l1 != NULL){ carry += l1->val; l1 = l1->next; } if(l2 != NULL){ carry += l2->val; l2 = l2->next; } ListNode* node = new ListNode(carry%10); //向下取整 carry/=10; curr->next = node; curr = node; } return result; } };
  • 相关阅读:
    [CF1398E] Two Types of Spells
    [CF1399E2] Weights Division (hard version)
    [CF1400E] Clear the Multiset
    Review 2020.10.29
    Review 2020.10.11
    [CF1409F] Subsequences of Length Two
    [CF1413E] Solo mid Oracle
    [2020CCPC威海C] Rencontre
    [2020CCPC威海B] Labyrinth
    phpredis实现简单的消息队列
  • 原文地址:https://www.cnblogs.com/zhangthree/p/10482334.html
Copyright © 2011-2022 走看看