1. 编程与英语学习的黄金组合
在技术人的成长道路上,编程刷题和英语能力就像是一对黄金搭档。每天坚持解决几道算法题,同时保持英语阅读的习惯,这种组合训练带来的复利效应往往超乎想象。我坚持这个习惯已经三年多,从最初LeetCode周赛只能完成1题,到现在稳定解决3题;从阅读技术文档需要频繁查词典,到现在能流畅阅读英文原版书籍——这种进步是实实在在的。
今天要分享的是第11天的打卡内容,包含三道代码题(编号31-33)和一篇英语技术文章的翻译。这种组合训练特别适合想要同时提升算法能力和专业英语的开发者。下面我会详细拆解每道题的解题思路,并分享技术翻译中的实用技巧。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 代码题31:二叉树层序遍历
2.1 问题描述
给定一个二叉树的根节点root,返回其节点值的层序遍历结果(即逐层从左到右访问所有节点)。
示例:
输入:root = [3,9,20,null,null,15,7]
输出:[[3],[9,20],[15,7]]
2.2 解题思路
层序遍历是二叉树算法中的基础但重要操作,关键在于如何记录每一层的边界。我推荐使用队列(Queue)来实现:
python复制from collections import deque
def levelOrder(root):
if not root:
return []
queue = deque([root])
result = []
while queue:
level_size = len(queue)
current_level = []
for _ in range(level_size):
node = queue.popleft()
current_level.append(node.val)
if node.left:
queue.append(node.left)
if node.right:
queue.append(node.right)
