2025年|牛客网剑指offer(更新中)
链表
从尾到头打印链表
1 | //3.从尾到头打印链表 |
反转链表
1 | //15.反转链表 |
合并两个排序链表
1 | //16.合并两个排序链表 |
两个链表的第一个公共结点
1 |
|
链表中环的入口结点
1 | //55.链表中环的入口结点 |
链表中倒数最后k个结点
1 | //14.链表中倒数第K个节点 |
复杂链表的复制
1 | //25.复杂链表的复制 |
删除链表中重复的结点
1 | function deleteDuplication(pHead){ |
删除链表中的结点
1 | /* |
树
二叉树的深度
1 | function TreeDepth(pRoot){ |
按之字形顺序打印二叉树
1 |
|
二叉搜索树的第k个结点
1 | class TreeNode { |
重建二叉树
1 | //4.重建二叉树 |
树的子结构
1 | //17.树的子结构 |
二叉树的镜像
1 | //18.二叉树的镜像 |
从上到下打印二叉树
1 | //22.从上往下打印二叉树 |
二叉搜索树的后序遍历序列
1 | //23.二叉搜索树的后序遍历序列 |
二叉树中和为某一值的路径(-)
1 | //24.二叉树中和为某一值的路径 |
二叉树搜索树与双向链表
1 | // 递归方法(中序遍历) |
判断是不是平衡二叉树
1 | //39.平衡二叉树 |
二叉树的下一个结点
1 | function GetNext(pNode) { |
对称的二叉树
1 | //58.对称的二叉树 |
把二叉树打印成多行
1 | //60.把二叉树打印成多行 |
序列化二叉树
1 | class TreeNode { |
在二叉树中找到两个节点的最近公共祖先(TODO)
1 | /** |
二叉搜索树的最近公共祖先
1 | class TreeNode { |
队列和栈
用两个栈实现队列
1 | //5.用两个栈实现一个队列 |
包含min函数的栈
1 | //20.包含min函数的栈 |
栈的弹出、压入序列
1 | //21.栈的弹出、压入序列 |
翻转单词序列
1 | //44.翻转单词顺序列 |
滑动窗口的最大值
1 | /** |