2. Add Two Numbers.go

注意的问题:
1.进位
2.两个list的长度不一定相等

func addTwoNumbers(l1 *ListNode, l2 *ListNode) *ListNode {
    result := &ListNode{0, nil}
    cursor := result
    leftBit, rightBit, carryBit := 0, 0, 0

    for l1 != nil || l2 != nil || carryBit > 0 {
        if l1 != nil {
            leftBit = l1.Val
            l1 = l1.Next
        } else {
            leftBit = 0
        }

        if l2 != nil {
            rightBit = l2.Val
            l2 = l2.Next
        } else {
            rightBit = 0
        }
        //考虑有进位的情况
        cursor.Val = (leftBit + rightBit + carryBit) % 10
        carryBit = (leftBit + rightBit + carryBit) / 10

        if l1 != nil || l2 != nil || carryBit > 0 {
            cursor.Next = &ListNode{0, nil}
            cursor = cursor.Next
        }
    }

    return result
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 这个题目内容是给定两个非空链表,每个链表表示一个非负整数,链表的每个节点存储整数的一位,且链表头为最高位,链表尾为...
    魏太恒阅读 2,767评论 0 1
  • 今天晚上爱成长爱公益平台在Grace的邀请下大家一起吃饭商讨21日的活动,在现场认识和了解了很多在公益平台积极服务...
    田圆0618阅读 1,616评论 2 1
  • 星星闭上眼睛 我在池边慢行 远处还是一方池塘 生命在蒙雾里呼吸 或是溺亡 我流失在很远的地方 风落下翅膀 一切成灰...
    三闻鱼r阅读 1,382评论 0 2
  • 今天上午,我和我同学在一起上了一堂英语课,很开心。 我做了一次助教,感觉很棒。助教主要是为大家服务,譬如当ipad...
    栾家康阅读 3,251评论 0 5
  • MNIST: http://yann.lecun.com/exdb/mnist/ MNIST机器学习入门:http...
    iOSDevLog阅读 5,120评论 1 3

友情链接更多精彩内容