![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
剑指offer---链表队列栈
认真搬砖,专心搞钱
全栈方向,前后端、数据库都有接触,希望能将自己用到的技术做成一个个专栏
展开
-
剑指offer【c++】删除链表中重复的结点
剑指offer【c++】删除链表中重复的结点题目:在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5思路:因为排序,所以可以在通过cur->next->next不断比较,将相同的数字所有的重复全部删除/*struct...原创 2018-06-23 21:57:28 · 307 阅读 · 0 评论 -
剑指offer【C++】链表中环的入口结点
剑指offer【C++】链表中环的入口结点题目:一个链表中包含环,请找出该链表的环的入口结点。思路:第一步,找环中相汇点。分别用p1,p2指向链表头部,p1每次走一步,p2每次走二步,直到p1==p2找到在环中的相汇点。第二步,找环的长度。从环中的相汇点开始, p2不动, p1前移, 当再次相遇时,p1刚好绕环一周, 其移动即为环的长度K,使用一快一慢两个指针(比如慢指针一次走一步, 慢指针一次走...原创 2018-06-23 19:14:47 · 397 阅读 · 0 评论 -
剑指offer【c++】合并两个排序的链表
剑指offer【c++】合并两个排序的链表题目:输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。思路:比较简单,依次迭代代码:/*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { }};*/class Sol...原创 2018-06-24 22:17:52 · 171 阅读 · 0 评论 -
剑指offer[c++] 用两个栈实现队列
剑指offer[c++] 用两个栈实现队列题目:用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。思路: push 比较容易,直接把数据push 进stack1中pop需要将stack1中的数据push进stack2中,这样栈1的先入后出就可以变成栈2的先入先出,将栈2中的顶部数据返回即为队列的pop数据再将栈2中的数据push回去栈1,保持原始状态。class ...原创 2018-06-27 21:20:44 · 271 阅读 · 0 评论 -
剑指offer[c++] 包含min函数的栈
剑指offer[c++] 包含min函数的栈题目:定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。思路: 构建stack2存储最小值class Solution {public: void push(int value) { stack1.push(value); if(stack2.empty()) stac...原创 2018-06-27 21:55:41 · 304 阅读 · 0 评论 -
剑指offer【c++】栈的压入、弹出序列
剑指offer【c++】栈的压入、弹出序列题目:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)思路: 借用一个辅助的栈,遍历压栈顺序,先讲第一个放入...原创 2018-06-28 21:48:28 · 1055 阅读 · 0 评论