栈
Celine-Coding
Keep moving, stay kind.
展开
-
剑指 offer27.回文链表 -- JavaScript解法
题目描述思路利用栈后进先出的特性,把链表所有元素入栈,再出栈,与链表节点一一对比,如果是回文链表,对比元素则相同,否则不是回文链表。步骤新建栈;链表所有元素入栈;栈顶元素依次出栈跟链表元素比较;所有元素相同,return true,否则 return false。Code partvar isPalindrome = function(head) { if(!head) return true; const stack = []; let p = head; let原创 2022-03-08 13:05:04 · 800 阅读 · 0 评论 -
剑指 offer09. 用两个栈实现队列 -- JavaScript解法
题目描述解题思路根据题目,可以操作两个“后进先出”的栈,实现一个“先进先出”的队列CQueue。思路:1、假设把a,b,c插入队列,可以把新进来的元素先push进栈1,得到[a,b,c],c位于栈顶;2、删除元素时,由于先进入队列的元素,先被压入stack1的底端,经过弹出和押入操作后,位于stack2的顶端,可以直接弹出。如,abc进入栈1后,stack1 = [a,b,c],删除元素时,理应先删除a,但栈是后进先出,所以栈2利用起来了,把元素从栈1pop出去再push进栈2,得到[c,b,原创 2022-02-26 00:21:31 · 327 阅读 · 0 评论