首先申明,自己是打算练一下python和一些基础的编程技巧才做的,如果是c纯算法的话我可吃不消
题目
给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。
如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。
您可以假设除了数字 0 之外,这两个数都不会以 0 开头。
示例:
1 | 输入:(2 -> 4 -> 3) + (5 -> 6 -> 4) |
这题首先让我困扰的就是python怎么写链表,和c不一样,python没有专门的指针概念,在python中每个变量都是指针,隐式地包含了指向/嵌套关系
结合了一些网上的分析,最后好的办法是创建一个类,链接如下:
https://blog.csdn.net/hjxu2016/article/details/79714783 ;
https://www.cnblogs.com/yuanmingzhou/p/9661152.html
定义ListNode节点
1 | class ListNode(object): |
定义SinglelinkedList单向链表
1 | class SingleLinkedList(object): |
解题
题目其实是给了部分定义的,我们可以省力不少
1 | # leetcode |
最后其实不断地p.next是可以从低位到高位全部输出的,主要的收获就是python可能弄个节点的类,之前没试过
本文作者:
xiaoyuyu
本文链接: http://woaixiaoyuyu.github.io/2019/02/05/leetcode-%E4%B8%A4%E6%95%B0%E7%9B%B8%E5%8A%A0/
版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!
本文链接: http://woaixiaoyuyu.github.io/2019/02/05/leetcode-%E4%B8%A4%E6%95%B0%E7%9B%B8%E5%8A%A0/
版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!