一、常考题型
python web
后端常考数据结构
1.常见的数据结构链表、队列、栈、二叉树、堆
2.使用内置结构实现高级数据结构,比如内置的 list
/deque
实现栈
3.Leetcode
或者 《剑指offer
》上的常见题
二、常考数据结构之链表
链表有单链表、双链表、循环双端链表
1.如何使用 python
来表示链表结构
2.实现链表常见操作,比如插入节点,反转链表,合并多个链表等
3.Leetcode
练习常见链表题目
下面是 leetcode
第 206
号题 反转链表
# 定义单链表
class ListNode:
def __init__(self, x):
self.val = x
self.next = None
class Solution:
def reverseList(self, head):
"""
:type head: ListNode
:rtype: ListNode
"""
pre = None
cur = head
while cur:
next_node = cur.next
cur.next = pre
pre = cur
cur = next_node
return pre
三、常考数据结构之队列
队列(queue
)是先进先出结构
1.如何使用python
实现队列?
2.实现队列的 append
和 pop
操作,如何做到先进先出
3.使用 python
的list
或者 collections.deque
实现队列
代码示例:
from collections import deque
class Queue:
def __init__(self):
self.items = deque()
def append(self, val):
return self.items.append(val)
def pop(self):
return self.items.popleft()
def empty(self):
return len(self.items) == 0
def test_queue():
q = Queue()
q.append(0)
q.append(1)
q.append(2)
print(q.pop())
print(q.pop()