微软件工程师面试问题集.docxVIP

  • 5
  • 0
  • 约5.77千字
  • 约 18页
  • 2026-02-27 发布于福建
  • 举报

第PAGE页共NUMPAGES页

2026年微软件工程师面试问题集

一、编程基础题(共5题,每题10分,总分50分)

题目1(10分)

编写一个函数,实现二叉树的深度优先遍历(前序遍历)。要求使用递归和非递归两种方法实现。

答案与解析:

python

递归方法

defpreorder_recursive(root):

ifnotroot:

return[]

result=[]

result.append(root.val)

result.extend(preorder_recursive(root.left))

result.extend(preorder_recursive(root.right))

returnresult

非递归方法

defpreorder_iterative(root):

ifnotroot:

return[]

stack,result=[root],[]

whilestack:

node=stack.pop()

result.append(node.val)

ifnode.right:

stack.append(node.right)

ifnode.left:

stack.append(node.left)

returnresult

解析:前序遍历遵循根-左-右的访问顺序。递归方法直接按照顺序访问节点

文档评论(0)

1亿VIP精品文档

相关文档