小记录¶
链表头节点处理¶
涉及到链表的情况,通常都是先给一个头节点,然后进入循环操作,循环内第一步先 new 一个节点之后切换到当前节点,然后计算更新值,并赋值,最后返回头节点的子节点即可。
例子:
# Definition for singly-linked list.
# class ListNode(object):
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution(object):
def addTwoNumbers(self, l1, l2):
"""
:type l1: ListNode
:type l2: ListNode
:rtype: ListNode
"""
prev = 0
cur1, cur2 = l1, l2
Root = ListNode(0)
root = Root
while cur1 or cur2 or prev != 0:
root.next = ListNode(0)
root = root.next
temp1 = cur1.val if cur1 is not None else 0
temp2 = cur2.val if cur2 is not None else 0
res = (temp1 + temp2 + prev)%10
prev = (temp1 + temp2 + prev)//10
cur1 = cur1.next if cur1 else None
cur2 = cur2.next if cur2 else None
root.val = res
return Root.next