简单易懂

两个链表生成相加链表

http://www.nowcoder.com/practice/c56f6c70fb3f4849bc56e33ff2a50b6b

  • 首先反转需要相加的两个链表
  • 其次每次新建节点tmp,把tmp.next -> res; 然后res = tmp
class Solution:
    def reverseList(self, head):
        res = None
        cur = head
        while cur:
            tmp = cur.next
            cur.next = res
            res = cur 
            cur = tmp
        return res

    def addInList(self, head1, head2):
        # write code here
        rhead1 = self.reverseList(head1)
        rhead2 = self.reverseList(head2)
        rp1, rp2 = rhead1, rhead2
        carry = 0
        res = None
        while rp1 or rp2:
            val1 = rp1.val if rp1 is not None else 0
            val2 = rp2.val if rp2 is not None else 0
            carry, val = divmod(val1 + val2 + carry, 10)
            tmp = ListNode(val)
            tmp.next = res
            res = tmp
            if rp1:
                rp1 = rp1.next
            if rp2:
                rp2 = rp2.next

        if carry > 0:
            tmp = ListNode(carry)
            tmp.next = res
            res = tmp
        return res
全部评论

相关推荐

10-24 11:10
山西大学 Java
若梦难了:哥们,面试挂是很正常的。我大中厂终面挂,加起来快10次了,继续努力吧。
点赞 评论 收藏
分享
今天 09:08
裁应届生,一分钱补偿没有,离职了还脑控你,跟踪你,定位你,丁东服务是搞系每一个人
牛客吹哨人:建议细说...哨哥晚点统一更新到黑名单:不要重蹈覆辙!25届毁意向毁约裁员黑名单https://www.nowcoder.com/discuss/1317104
叮咚买菜稳定性 8人发布 投递叮咚买菜等公司10个岗位 >
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务