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

    首先想到的是走到其中一个链表的尽头,然后把剩余的链表中的值放入写的链表,返回,但是自己写的代码好长。

     1 struct ListNode* addTwoNumbers(struct ListNode* l1, struct ListNode* l2) {
     2     int g,s=0,stmp;
     3     struct ListNode *pl,*ptmp,*pi;
     4     pl=NULL;
     5     while(l1&&l2)
     6     {
     7         g=l1->val+l2->val;
     8         g+=s;
     9         stmp=g/10;
    10         g%=10;
    11         struct ListNode* ptmp=(struct ListNode *)malloc(sizeof(struct ListNode));
    12         ptmp->next=NULL;
    13         ptmp->val=g;
    14         if(pl==NULL)
    15             {
    16                 pl=ptmp;
    17                 pi=pl;
    18             }
    19             else
    20             {
    21                 pi->next=ptmp;
    22                 pi=pi->next;
    23             }
    24         s=stmp;
    25         l1=l1->next;
    26         l2=l2->next;
    27     }
    28     if(l1==NULL)
    29         l1=l2;
    30     while(l1)
    31     {
    32         g=l1->val;
    33         g+=s;
    34         stmp=g/10;
    35         g%=10;
    36         struct ListNode *ptmp=malloc(sizeof(struct ListNode));
    37         ptmp->next=NULL;
    38         ptmp->val=g;
    39         pi->next=ptmp;
    40         pi=pi->next;
    41         s=stmp;
    42         l1=l1->next;
    43     }
    44     if(s)
    45     {
    46         struct ListNode *ptmp=malloc(sizeof(struct ListNode));
    47         ptmp->next=NULL;
    48         ptmp->val=s;
    49         pi->next=ptmp;
    50     }
    51     return pl;
    52 }

     Python:

     1 # Definition for singly-linked list.
     2 # class ListNode(object):
     3 #     def __init__(self, x):
     4 #         self.val = x
     5 #         self.next = None
     6 
     7 class Solution(object):
     8     def addTwoNumbers(self, l1, l2):
     9         """
    10         :type l1: ListNode
    11         :type l2: ListNode
    12         :rtype: ListNode
    13         """
    14         tmp = l1
    15         up = 0
    16         while l1 and l2:
    17             l1.val += (l2.val+up)
    18             if l1.val > 9:
    19                 up = 1
    20                 l1.val %= 10
    21             else:
    22                 up = 0
    23             p1,p2 = l1,l2
    24             l1,l2 = l1.next,l2.next
    25         if not l1 and not l2:
    26             if up:
    27                 p1.next = ListNode(up)
    28                 return tmp
    29         if l2:
    30             p1.next = l2
    31         l1 = p1.next
    32         while l1 and up:
    33             l1.val += up
    34             if l1.val >9:
    35                 up=1
    36                 l1.val %= 10
    37             else:
    38                 up = 0
    39             p1 = l1
    40             l1 = l1.next
    41         if up:
    42             p1.next = ListNode(up)
    43         return tmp
    44             
  • 相关阅读:
    Win7+CentOS7双系统安装
    python中的 __getattr__ __setattr__ __getitem__ __add__
    对象.函数名 叫方法 和 类.函数名 叫函数
    python中的__str__ __name__ 和__call__方法
    flask中的登录验证 装饰器版 befor_request版
    装饰器
    Django model中的 class Meta 详解
    跨域问题cors
    reids缓存
    python-django目录
  • 原文地址:https://www.cnblogs.com/fcyworld/p/6146469.html
Copyright © 2011-2022 走看看