- 博客(4)
- 收藏
- 关注
原创 leetcode题解21.合并两个有序链表
中还有剩余的节点,因为其中一个链表可能已经遍历完了。此时,只需要将剩余的链表直接连接到合并链表的尾部即可。虚拟头节点的作用是方便后续操作,避免处理合并后链表的头节点为空的特殊情况。本题要求合并两个有序的单链表,合并后的链表依然保持有序。为了合并两个有序链表,我们可以采用迭代的方法,借助一个虚拟头节点(,需要将它们合并成一个新的有序链表并返回其头节点。都为空,那么合并后的链表也为空,直接返回。首先需要考虑两个链表为空的情况。为空,那么合并后的链表就是。,它就是合并后链表的头节点。为空,合并后的链表就是。
2025-02-21 14:35:08
662
原创 Leetcode题解2.两数相加 (链表)
整体思路概述代码要实现两个用链表逆序存储的非负整数相加,每个链表节点存储一位数字,从链表头到链表尾依次对应数字的低位到高位。为了方便处理,使用一个虚拟头节点来构建结果链表,在遍历两个输入链表的过程中逐位相加,并处理进位,最后返回结果链表。代码详细步骤及思路分析1.创建虚拟头节点创建一个值为 0 的虚拟头节点 dummy,目的是避免在处理结果链表的第一个节点时进行特殊判断。用指针 summ 指向这个虚拟头节点,后续会用 summ 来构建结果链表。2. 初始化进位标志。
2025-02-20 15:07:02
388
原创 C++中的设计模式介绍并掌握如何去实现
观察者模式(Observer Pattern):定义了一种一对多的依赖关系,当一个对象状态改变时,它的所有依赖者都会收到通知并自动更新。模板方法模式(Template Method Pattern):定义一个操作中的算法骨架,而将一些步骤延迟到子类中实现。C++ 中,常用的设计模式可以分为创建型、结构型和行为型三大类,以下为你详细介绍几种常见的设计模式的原理和使用方法。策略模式(Strategy Pattern):定义一系列算法,将每个算法封装起来,并使它们可以相互替换。
2025-02-13 08:38:16
268
原创 C++经典面试题 100道 覆盖大部分内容
简述线程同步的概念,C++ 中有哪些线程同步机制(如 std::mutex、std::lock_guard 等)?std::map 和 std::unordered_map 的区别是什么,分别在什么情况下使用?简述 std::future 和 std::promise 的使用场景和工作原理。std::variant 和 std::any 的区别是什么,分别适用于什么场景?简述 std::move 和 std::forward 的作用和使用方法。
2025-02-10 19:42:07
265
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人