3.19
果然不能摆,一摆好几天过去了,久到妈妈写了几个小时论文了,而本废物一个字还没动
学习了一下各路技巧,发现官方题解才是最简单最好理解的,用了栈:
class Solution:
def reversePrint(self, head: ListNode) -> List[int]:
stack = []
while head:
stack.append(head.val)
head = head.next
res = []
while stack:
res.append(stack.pop())
return res
1)关于head.val
官方有给出单链表定义
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
2)关于为什么用while不用for
因为目前只知道这个head,不知道整个
class Solution:
def mergeTwoLists(self, list1: Optional[ListNode], list2: Optional[ListNode]) -> Optional[ListNode]:
cur = dummy = ListNode(0)
while list1 and list2:
if list1.val < list2.val:
cur.next = list1
list1 = list1.next
else:
cur.next = list2
list2 = list2.next
cur = cur.next
cur.next = list1 or list2
return dummy.next
cur = dummy = ListNode(0)
等同于
dummy = ListNode(0)
cur = dummy
另外如果return 成dummy了,会返回ListNode里面的值再加上后面的正常输出。
明天要起床学习链表和递归了,加油加油!不准摆!