Swift - LeetCode - 两数相加(1)

题目

两个数相加

问题:

给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。

示例:

输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)
输出:7 -> 0 -> 8
原因:342 + 465 = 807
代码:
/**
public class SingNode {
    public var value : Int
    public var nextNode: SingNode?
    
    public init(value:Int) {
        self.value = value
    }
}
 **/
 func addTwoNumber(_ l1:singNode?,_ l2:singNode?) -> singNode? {
        if l1 == nil {
            return l2
        }
        
        if l2 == nil {
            return l1
        }
        
        var c1 = l1
        var c2 = l2
        let dummyNode:singNode = singNode.init(value: 0)
        var tempNode = dummyNode
        
        var result = 0
        
        while c1 != nil || c2 != nil {
            result = result/10
            if c1 != nil {
                result += c1?.value ?? 0
                c1 = c1?.nextNode
            }
            
            if c2 != nil {
                result += c2?.value ?? 0
                c2 = c2?.nextNode
            }
            tempNode.nextNode = singNode.init(value: result%10)
            tempNode = tempNode.nextNode!
        }
        return dummyNode.nextNode
    }
    
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 一些概念 数据结构就是研究数据的逻辑结构和物理结构以及它们之间相互关系,并对这种结构定义相应的运算,而且确保经过这...
    Winterfell_Z阅读 11,435评论 0 13
  • 搞懂单链表常见面试题 Hello 继上次的 搞懂基本排序算法,这个一星期,我总结了,我所学习和思考的单链表基础知识...
    醒着的码者阅读 10,077评论 1 45
  • 引言:用Js攻略leetcode中的算法,将会介绍自己的思路和注意点,一边学习一边愉快刷题呀。 问题1: 给定两个...
    mooory阅读 5,515评论 0 0
  • 我妈对我说的 好好学习 好好吃饭 早点睡觉 按时吃药 争取做个会计 我特么一个都做不到。 我可能是个废物 我想打我自己。
    一碟儿阅读 1,238评论 1 1
  • (一) 从前有个死肥宅,他特别特别爱喝可乐,他将可乐视之为生命,少了和可乐在一起的一天都不行。 他伤心难过的时候要...
    治愈怪物阅读 4,425评论 0 2

友情链接更多精彩内容