![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
ziqi_Yang
这个作者很懒,什么都没留下…
展开
-
算法题:判断单链表有无环,如果有的话,找出入环的第一个结点。
题目描述:给定一个链表,判断链表中是否有环。进阶:你能否不使用额外空间解决此题?思路:使用快慢双指针。两个指针开始都指向head,快指针一次移动两个位置,慢指针一次移动一个位置。如果有环,那么快指针一定会追上慢指针,就好像在环状的跑道上跑步,只要时间足够,快的人一定会在某个时刻领先慢的人一圈。题目描述:给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。说明:不允...原创 2018-10-31 20:34:32 · 440 阅读 · 0 评论 -
算法题:扁平化多级双向链表
题目描述:您将获得一个双向链表,除了下一个和前一个指针之外,它还有一个子指针,可能指向单独的双向链表。这些子列表可能有一个或多个自己的子项,依此类推,生成多级数据结构,如下面的示例所示。扁平化列表,使所有结点出现在单级双链表中。您将获得列表第一级的头部。输入:1—2---3—4---5—6–NULL|7—8---9—10–NULL|11–12–NULL输出:1-2-3-7-8-1...原创 2018-11-01 15:11:30 · 599 阅读 · 0 评论 -
算法题:复制带随机指针的链表
题目描述:给定一个链表,每个节点包含一个额外增加的随机指针,该指针可以指向链表中的任何节点或空节点。要求:返回这个链表的深度拷贝。思路:首先改变原来这个链表的结构。在每一个结点之后,复制该结点的一个副本。在第一次遍历完整个链表后,链表中的结点是一份原始、一份拷贝,不过拷贝的结点中除了label和上一个原始结点相同外,random的引用都为null。第二遍从头开始遍历链表,只遍历原始的那些结点。...原创 2018-11-01 16:15:49 · 306 阅读 · 0 评论 -
java实现栈MyStack,底层使用数组和链表实现
栈是一种操作受限的线性表,只能在一端插入和删除元素。(FILO)具体用java实现:/** * 栈的接口,规定了栈的基本操作 */public interface MyStack<Item> extends Iterable<Item>{ /** * 初始化栈 */ public void initStack(int maxSi...原创 2018-11-09 19:13:04 · 909 阅读 · 0 评论 -
java实现队列MyQueue,底层使用数组实现
/** * 队列的接口 * 队列是一种先进先出的数据结构 * 队列支持的操作: * 判断队列是否为空 * 判断队列是否已经满了 * 查看队列已经有多少元素 * 将一个元素入队 * 将一个元素出队 * 查看队头的元素,但不出队 * 队列在底层可以用数组实现,也可以用链表实现 * 但不管实现方式如何,都必须满足此接口中的规定 */public interface MyQueu...原创 2018-11-02 16:37:06 · 935 阅读 · 0 评论 -
java实现队列MyQueue,底层使用链表实现
/** * 队列的接口 * 队列是一种先进先出的数据结构 * 队列支持的操作: * 判断队列是否为空 * 判断队列是否已经满了 * 查看队列已经有多少元素 * 将一个元素入队 * 将一个元素出队 * 查看队头的元素,但不出队 * 队列在底层可以用数组实现,也可以用链表实现 * 但不管实现方式如何,都必须满足此接口中的规定 */public interface MyQueu...原创 2018-11-02 19:37:41 · 544 阅读 · 0 评论