刷题
刷题
s_yqb
这个作者很懒,什么都没留下…
展开
-
剑指 Offer 30. 包含min函数的栈
剑指 Offer 30. 包含min函数的栈原创 2021-11-06 14:48:07 · 60 阅读 · 0 评论 -
剑指 Offer 35. 复杂链表的复制
请实现 copyRandomList 函数,复制一个复杂链表。在复杂链表中,每个节点除了有一个 next 指针指向下一个节点,还有一个 random 指针指向链表中的任意节点或者 null。 作者:jyd 链接:https://leetcode-cn.com/problems/fu-za-lian-biao-de-fu-zhi-lcof/solution/jian-zhi-offer-35-fu-za-lian-biao-de-fu-zhi-ha-xi-/ 来源:力扣(LeetCode) 思路:对于普通的原创 2021-11-09 15:07:03 · 371 阅读 · 0 评论 -
剑指 Offer 24. 反转链表
定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。 思路:最开始自己想到的是用栈的方法,该方法很好理解,根据栈先入后出的原则,很容易做到反转链表,但是最终运行提示内存超出。看了题解后,有两种方法,一种是迭代,一种是递归 迭代,也可以叫做双指针,通过维护两个指针,来进行一步步迭代。第一个指针指向前一个节点,第二个指针指向当前节点。每进行依次迭代,先保存住下一个节点的地址,之后让当前指针指向前一个节点,最后让前一节点和当前节点继续往下走 public ListNode revers原创 2021-11-07 14:53:11 · 76 阅读 · 0 评论 -
剑指 Offer 06. 从尾到头打印链表
输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。 思路:简单题方法很多。自己是创建了列表,将链表里的数据依次放入列表,之后再倒序将列表里的数据放入数组中;官方是创建了一个栈,将链表节点压入,再依次弹出,按照弹出顺序把数据存入数组中;也可以先遍历,获得链表的size,再创建数组,依次存入数据 class Solution { public int[] reversePrint(ListNode head) { List<Integer> list = n原创 2021-11-07 12:53:58 · 64 阅读 · 0 评论 -
剑指 Offer 09. 用两个栈实现队列
用两个栈实现队列原创 2021-11-06 13:00:11 · 74 阅读 · 0 评论