Add|Add Two Numbers 两个链表相加 python
描述:
You are given two linked lists representing two non-negative numbers. The digits are stored in reverseorder and each of their nodes contain a single digit. Add the two numbers and return it as a linked list.
Input: (2 -> 4 -> 3) + (5 -> 6 -> 4)
Output: 7 -> 0 -> 8
python 2.7.x环境,代码如下:
【Add|Add Two Numbers 两个链表相加 python】
# coding=utf-8class LinkNode(object):# 定义链表节点
def __init__(self, val, nextnode=None):
self.val = val
self.nextnode = nextnodeclass Solution(object):
def add_two_list(self, lista=None, listb=None):
if lista is None:
return listb
if listb is None:
return lista
ret = LinkNode(0)
p = ret
cflag = 0
while lista or listb:# 直接把两个链表的长短不一考虑进来
total = cflag
if lista:
total += lista.val
lista = lista.nextnode
if listb:
total += listb.val
listb = listb.nextnode
p.nextnode = LinkNode(total % 10)
cflag = total / 10
p = p.nextnode
if cflag == 1:
p.nextnode = LinkNode(1)
return ret.nextnode
if __name__ == '__main__':
roota = LinkNode(2)
node1 = LinkNode(4)
node2 = LinkNode(3)
roota.nextnode = node1
node1.nextnode = node2
rootb = LinkNode(5)
node3 = LinkNode(6)
node4 = LinkNode(4)
rootb.nextnode = node3
node3.nextnode = node4
out = Solution().add_two_list(roota, rootb)
while out:
print out.val
out = out.nextnode
推荐阅读
- 【Leetcode/Python】001-Two|【Leetcode/Python】001-Two Sum
- paddle|动手从头实现LSTM
- 推荐系统论文进阶|CTR预估 论文精读(十一)--Deep Interest Evolution Network(DIEN)
- Swift|Swift ----viewController 中addChildViewController
- NAT(网络地址转换技术)
- KubeDL HostNetwork(加速分布式训练通信效率)
- 清晨朗读327(How|清晨朗读327:How Successful People Network with Each Other)
- 神经网络Neural|神经网络Neural Networks
- 8-31|8-31 老Eastwood《骡子》
- AFNetworking上传图片