链表模板速览
🧌 链表模板速览📦 基础结构1234typedef struct LNode { int data; struct LNode *next;} LNode, *LinkList; 1️⃣ 反转整个链表思路: 三指针 prev / curr / next,...
KMP算法
🧠 KMP 算法 —— next 数组求法⭐ 下标从 0 开始 next[0] = -1 当 i ≥ 1:设 k 为 T[0...i-1] 的最长相等前后缀长度 k = 0 → next[i] = 0 k > 0 → next[i] = k ⭐ 下标从 1 开始 next[...
go语法(简洁)
Go 核心语法精简笔记 (背诵/速查版) 核心红线: 声明了不用的变量、导入了不用的包,极必编译报错! 1. 变量与常量初始化🌈 变量定义1234567891011// 1. 标准声明var a int = 10// 2. 类型推断var b = 20// 3. 简短声明(🔥...
go语法总结
Go 语言变量声明笔记在 Go 语言中,变量的声明有多种不同的方式。 ⚠️ 核心规则:在 Go 语言中,声明的变量定义了就必须被使用,否则在编译时会报错(declared and not used)。 1. 标准声明 (指定变量类型)使用 var 关键字,明确指定变量的类型。先声明,后赋值...
LeetCode-括号栈
🧠 括号栈 左括号入栈,右括号触发结算⭐ 模板一 合法括号判断 左括号 → 入栈 右括号 → 弹栈并匹配 最后栈必须为空 for (cahr c : s.toCharArray()){if ch 是左括号:入栈else:if 栈空: return false;top = 栈顶出...
LeetCode-BFS
一句话结论: 👉 BFS 本质上只和「队列(Queue)」有关。 它依赖 FIFO(先进先出)来保证节点按照“发现顺序”被处理,从而天然形成「一层一层」的遍历效果。 栈不参与 BFS 的任何核心逻辑。 ⭐ 模板层序遍历 初始化 // 队列:保存“等待被访问的节点”...
LeetCode-中心扩散
🧠 枚举回文中心,用左右指针向两边扩散,专治一切回文相关问题。 🧩 模板步骤 枚举中心位置 i 以 (i, i) 作为中心(奇数回文) 以 (i, i + 1) 作为中心(偶数回文) 左右指针同时扩散:left–、right++ 越界或不相等立即停止 ⭐ 模板 中心扩散函数 ...
LeetCode-双指针合并 (归并法)
🧠 涉及两个有序链表的合并、排序问题一句话结论:👉 “谁小谁先走”。这就是拉链原理:同时遍历两条链表,比较当前头节点,较小的那个接在结果链表后面,然后向前走一步。 ⭐ 核心逻辑哨兵节点 (Dummy Node):只要一个 dummy,用来挂接结果。 拉拉链 (Comparison):whi...
LeetCode-反转链表
🧠 通过修改 next 指针方向,将链表从「顺序结构」重排为「逆序结构」 一句话结论:👉 反转链表的本质不是换值,而是 改变指针指向。 核心三步曲: 留后路:next = curr.next (防止链表断裂) 改指向:curr.next = prev (核心反转) 同...
LeetCode-快慢指针(链表)
🧠 核心场景:链表中的位置定位、测距与判环 判断用哪个模板的唯一标准: 是否涉及“相对位置变化 / 追及” → 倍速循环 是否涉及“倒数 / 固定间距” → 定距循环 ⭐ 模板模板一:倍速循环 (Double Speed) 核心逻辑:只有跑得快,才能根据“相对位置”...

