- 博客(9)
- 收藏
- 关注
原创 链表中倒数最后K个结点(C++)
本题采用双指针法解决,通过让right指针先行 k 步,再让left和right同步移动,最终当right到达链表末尾时,left就指向了倒数第 k个节点。该方法时间复杂度为 O(n),空间复杂度为 O(1),非常高效。需要注意边界情况:如链表为空、k=0 或链表长度小于 k 时,直接返回nullptr。这一方法不仅高效简洁,也是链表问题中的经典解法。
2024-12-27 15:07:41
455
原创 链表中环的入口结点(C++)
链表中环的检测和环入口节点的查找是经典的算法问题,利用快慢指针法可以高效解决。通过让快指针每次移动两步,慢指针每次移动一步,当两指针相遇时可以判断链表是否存在环。同时,从链表头部和相遇点分别出发,步长相同的两指针再次相遇时的节点即为环的入口。
2024-12-26 16:20:12
1247
原创 判断链表中是否有环(C++)
通过掌握快慢指针的思想,不仅可以高效解决链表环检测问题,还能应用于其他复杂链表操作中,例如寻找链表中点或判断链表是否对称等问题。
2024-12-25 15:10:16
602
原创 合并k个已排序的链表(C++)
本文实现了逐步查找最小值的方法,逻辑直观且易于实现,但在 kkk 较大时效率较低。实际应用中,结合优先队列或分治法可以显著优化性能。读者可以根据具体需求选择合适的实现方式。
2024-12-24 21:06:31
995
原创 合并两个排序的链表(C++)
递归是解决合并两个有序链表问题的常用方法之一,其代码逻辑清晰且实现简便。然而,考虑到递归的栈空间开销,在实际应用中也可以选择非递归的迭代方法进行优化。在学习此问题的过程中,可以充分体会递归思想的优雅和灵活性。
2024-12-23 16:01:36
373
原创 链表内指定区间反转(C++)
函数通过虚拟头节点、精确控制指针移动及反转的步骤,成功地反转了链表中的一段区间。通过简单的指针操作,避免了额外的空间开销,并且使代码结构清晰易懂。这种方法是链表操作中的经典技巧,能够有效地处理各种反转问题。
2024-12-22 19:49:11
561
原创 Git安装及使用
Git是一个强大的版本控制工具,适用于个人项目和团队协作。在日常开发中,熟练掌握Git的基本操作和协同开发流程可以极大提高开发效率。通过合理使用分支、提交、标签和Pull Request,可以更加高效地管理代码,并与团队成员进行协作。
2024-12-21 23:45:10
1438
原创 反转链表(C++)
给定一个单链表的头结点pHead(该头节点是有值的,比如在下图,它的val是1),长度为n,反转该链表后,返回新链表的表头。要求:空间复杂度 O(1)O(1) ,时间复杂度 O(n)O(n)。经反转后,原链表变为{3,2,1},所以对应的输出为{3,2,1}。移动到链表中的下一个节点,以继续遍历链表。即为反转后的链表头节点,我们将其返回。,从而将新节点加入到反转链表的最前面。,它将作为反转后链表的头节点。,并将当前节点的值复制到新节点中。,即链表为空,我们直接返回。,意味着反转后的链表为空。
2024-12-17 23:02:01
657
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人