![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
剑指offer
太白子
希望和大家多多交流IT知识。
展开
-
链表之链表中倒数第k个结点
一、题目 输入一个链表,输出该链表中倒数第k个结点。 二、思路 我们可以定义两个指针。第一个指针从链表的头指针开始遍历向前走k-1,第二个指针保持不动;从第k步开始,第二个指针也开始从链表的头指针开始遍历。由于两个指针的距离保持在k-1,当第一个(走在前面的)指针到达链表的尾结点时,第二个指针(走在后面的)指针正好是倒数第k个结点。 三、举例 四、实现 ...原创 2019-08-27 08:51:13 · 133 阅读 · 0 评论 -
链表之从尾到头打印链表
一、题目 输入一个链表,返回一个反序的链表。 二、思路 通常,这种情况下,我们不希望修改原链表的结构。返回一个反序的链表,这就是经典的“后进先出”,我们可以使用栈实现这种顺序。每经过一个结点的时候,把该结点放到一个栈中。当遍历完整个链表后,再从栈顶开始逐个输出结点的值,给一个新的链表结构,这样链表就实现了反转。 三、举例 四、实现 ...原创 2019-08-27 08:17:13 · 137 阅读 · 0 评论 -
栈之用两个栈实现队列
事先定义栈s1和栈s2,栈s1专门负责入队,栈s2专门负责出队。 入队: 当s2为空时,直接入栈s1。 当s2不为空时,把s2的元素都倒回s1,然后再入栈s1。 出队: 当s2不为空时,直接出栈s2。 当s2为空时,把s1的元素都倒进s2,然后再出栈s2。 ...原创 2019-08-26 09:12:27 · 104 阅读 · 0 评论 -
栈之栈的压入、弹出序列
一、题目 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的) ...原创 2019-08-26 16:26:48 · 118 阅读 · 0 评论