堆栈:list 原生即可支持堆栈操作:
list.append():入栈;list.pop():出栈;not list:堆栈是否为空;链表节点:
class ListNode(object): def __init__(self, x): self.val = x self.next = None 1. 链表翻转链表:
def reverseList(head):cur, prev = head, Nonewhile cur:cur.next, prev, cur = prev, cur, cur.nextreturn prev# 跳出while循环时,cur 为 None 2. 排序快速排序(quick sort)
形式一:借助 partition 辅助函数 def partition(seq): pivot, seq = seq[0], seq[1:] low = [x for x in seq if x <= pivot] high = [x for x in seq if x not in low] return low, pivot, highdef qsort(seq): if len(seq) <= 1: return seq low, pivot, high = partition(seq) return qsort(low)+[pivot]+qsort(high) 形式二:直接返回数组 def qsort(arr):if len(arr) <= 1:return arrpivot = arr[len(arr)//2]left = [x for x in arr if x < pivot]middle = [x for x in arr if x == pivot]right = [x for x in arr if x > pivot]return qsort(left) + middle + qsort(right)