• LeetCode 2. 两数相加


    题目链接:https://leetcode-cn.com/problems/add-two-numbers/

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

    如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。

    您可以假设除了数字 0 之外,这两个数都不会以 0 开头。

    进位

     1 /**
     2  * Definition for singly-linked list.
     3  * struct ListNode {
     4  *     int val;
     5  *     struct ListNode *next;
     6  * };
     7  */
     8 
     9 struct ListNode* addTwoNumbers(struct ListNode* l1, struct ListNode* l2){
    10     if(l1==NULL&&l2==NULL) return NULL;
    11     if(l1==NULL&&l2!=NULL) return l2;
    12     if(l1!=NULL&&l2==NULL) return l1;
    13     struct ListNode *newL=(struct ListNode*)malloc(sizeof(struct ListNode));
    14     newL->next=NULL;
    15     struct ListNode *p=newL;
    16     int x,y,tmp=0,sum=0;
    17     while(l1||l2){
    18         x=l1!=NULL?l1->val:0;
    19         y=l2!=NULL?l2->val:0;
    20         sum=x+y+tmp;
    21         tmp=sum/10;
    22         p->next=(struct ListNode*)malloc(sizeof(struct ListNode));
    23         p=p->next;
    24         p->val=sum%10;
    25         p->next=NULL;
    26         if(l1) l1=l1->next;
    27         if(l2) l2=l2->next;
    28     }
    29     if(tmp){
    30         p->next=(struct ListNode*)malloc(sizeof(struct ListNode));
    31         p=p->next;
    32         p->val=1;
    33         p->next=NULL;
    34     }
    35     return newL->next;
    36 }
  • 相关阅读:
    界面实现的小总结
    创建线程的三种方式
    之前总结的今天给大分享一下iOS
    MVVM
    响应者链条
    layer图层常见属性
    NSRunLoop && NSTimer
    关于Angularjs做的一个购物车小例子
    css中实现元素的绝对居中
    剑指 Offer 18. 删除链表的节点 链表
  • 原文地址:https://www.cnblogs.com/shixinzei/p/12368646.html
Copyright © 2020-2023  润新知