高频计算机真实面试题及答案.docx

  1. 1、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。。
  2. 2、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  3. 3、文档侵权举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

高频计算机真实面试题及答案

如何用迭代和递归两种方式实现单链表反转?请分别说明时间复杂度和空间复杂度。

迭代法的核心是遍历链表时调整节点的指针方向。具体步骤:初始化三个指针,prev(初始为null)、curr(初始为头节点)、next(用于暂存下一节点)。循环中,先保存curr的下一个节点到next,然后将curr的next指向prev,接着prev移动到curr的位置,curr移动到next的位置,直到curr为null。此时prev即为新头节点。时间复杂度O(n)(遍历一次链表),空间复杂度O(1)(仅用常数额外空间)。

递归法需要从最后一个节点开始反转。终止条件是当前节点或下一

文档评论(0)

yclhdq + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档