2026年软件工程师面试笔试题集及答案解析.docxVIP

  • 1
  • 0
  • 约7.53千字
  • 约 22页
  • 2026-09-10 发布于福建
  • 举报

2026年软件工程师面试笔试题集及答案解析.docx

第PAGE页共NUMPAGES页

2026年软件工程师面试笔试题集及答案解析

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

题目1(10分)

编写一个函数,实现二叉树的前序遍历(根-左-右)。不使用递归方法,要求使用栈实现。

python

classTreeNode:

def__init__(self,val=0,left=None,right=None):

self.val=val

self.left=left

self.right=right

defpreorder_traversal(root):

ifnotroot:

return[]

stack,output=[root],[]

whilestack:

node=stack.pop()

output.append(node.val)

ifnode.right:

stack.append(node.right)

ifnode.left:

stack.append(node.left)

returnoutput

答案解析:

前序遍历需要按照根-左-右的顺序访问节点。使用栈可以实现非递归的前序遍历:

1.初始化栈,将根节点入栈

2.当栈不为空时:

a.弹出栈顶节点并加入结果列表

b.先将右子节点入栈(因为栈是后进先出,先处理右子节点)

c.再将左子节点入栈

文档评论(0)

1亿VIP精品文档

相关文档