
算法
文章平均质量分 53
田里插秧
这个作者很懒,什么都没留下…
展开
-
合并k个已排序的链表
这段代码通过优先队列高效地合并了 k 个有序链表。它首先将所有链表的头节点添加到优先队列中,然后逐个取出队列中的最小节点,并将其连接到合并后的链表中。通过这种方式,它能够保持合并后的链表也是有序的。原创 2024-09-20 23:34:57 · 409 阅读 · 1 评论 -
合并两个排序的链表
输入两个递增的链表,单个链表的长度为n,合并这两个链表并使新链表中的节点仍然是递增排序的。原创 2024-09-20 22:27:04 · 466 阅读 · 0 评论 -
链表内指定区间反转
如果链表为空(head == null),则无需反转,直接返回null(但这里实际上返回了head,即null,因为head已经是null)。如果链表只有一个节点(head.next == null),则不存在需要反转的区间,直接返回head。如果m等于n,表示没有需要反转的区间,也直接返回head。原创 2024-09-20 21:33:47 · 415 阅读 · 0 评论 -
用栈实现队列
使用栈(Stack)来实现队列(Queue)的行为虽然不是最高效的方法(因为栈是后进先出LIFO,而队列是先进先出FIFO),但可以通过。当需要出队时,如果辅助栈为空,则将主栈中的所有元素弹出并压入辅助栈中,这样原先主栈的栈底元素(即最早进入的元素)就位于辅助栈的栈顶,可以直接弹出。原创 2024-07-29 18:04:39 · 221 阅读 · 0 评论 -
用队列实现栈
使用队列(Queue)来实现栈(Stack)的功能。栈是一种后进先出(LIFO, Last-In-First-Out)的数据结构,而队列是一种先进先出(FIFO, First-In-First-Out)的数据结构。时将除了最后一个元素之外的所有元素移动到辅助队列中,从而保留并返回最后一个元素作为栈顶元素。为了使用队列实现栈,我们可以利用。原创 2024-07-29 17:59:51 · 104 阅读 · 0 评论 -
实现反转链表
首先检查链表是否为空或只有一个节点。如果是,直接返回原链表(因为反转一个空链表或只有一个节点的链表仍然是它本身)。指向了反转后链表的头节点,因此返回。原创 2024-07-12 04:13:00 · 327 阅读 · 0 评论 -
输出单链表中倒数第K个节点
算法思想是基于快慢指针(也称为“龟兔赛跑”算法)来找到链表中倒数第k个节点的原创 2024-07-12 05:04:46 · 380 阅读 · 0 评论 -
单链表打印中间节点
快慢指针(也称为龟兔赛跑算法)来找到链表的中间节点,是一种非常高效且简洁的算法思想。这种算法的核心在于利用两个指针以不同的速度遍历链表,从而在中就能找到中间节点。原创 2024-07-12 04:39:47 · 277 阅读 · 0 评论