码迷,mamicode.com
首页 > 其他好文 > 详细

2. 两数相加

时间:2019-03-13 00:09:49      阅读:201      评论:0      收藏:0      [点我收藏+]

标签:相加   class   int   code   efi   ptr   link   next   for   

  • Python3
# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, x):
#         self.val = x
#         self.next = None

class Solution:
    def addTwoNumbers(self, l1: ListNode, l2: ListNode) -> ListNode:
        l_result = ListNode(0)
        l_r = l_result
        carry = 0   
        while l1 or l2:
            x = l1.val if l1 else 0
            y = l2.val if l2 else 0
            
            result = x + y + carry
            carry = result // 10
            l_r.next = ListNode(result % 10)
            l_r = l_r.next
            
            if l1 is not None: l1 = l1.next
            if l2 is not None: l2 = l2.next
        
        if carry > 0:
            l_r.next = ListNode(carry)
            
        return l_result.next
  • Go
/**
 * Definition for singly-linked list.
 * type ListNode struct {
 *     Val int
 *     Next *ListNode
 * }
 */
func addTwoNumbers(l1 *ListNode, l2 *ListNode) *ListNode {
    l_r := &ListNode{Val: 0}
    ptr := l_r
    carry := 0
    p := l1
    q := l2
    for (p != nil || q != nil) {
        x := 0
        if p != nil {
            x = p.Val
        }
        
        y := 0
        if q != nil {
            y = q.Val
        }
        
        sum := x + y + carry
        carry = sum / 10
        tmp := sum % 10
        
        ptr.Next = &ListNode{Val: tmp, Next: nil}
        ptr = ptr.Next
        
        if p != nil {
            p = p.Next
        }
        if q != nil {
            q = q.Next
        }
    }
    if carry > 0 {
        ptr.Next = &ListNode{Val: carry, Next: nil}
    }
    return l_r.Next
}

2. 两数相加

标签:相加   class   int   code   efi   ptr   link   next   for   

原文地址:https://www.cnblogs.com/leisurelylicht/p/2-liang-shu-xiang-jia.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!