自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(6)
  • 收藏
  • 关注

原创 【剑指offer】JZ23-链表中环的入口节点-Python解法

有环链表与无环链表之间最大的区别是在有环链表找不到一个Next域为空的节点(p.next = NULL不存在),可以使用来判断链表是否包含环,定义两个指针,同时从链表的头节点出发,一个指针一次走一步(慢指针),另一个指针一次走两步(快指针),如果走得快的指针追上了走得慢的指针,那么链表就包含环;如果走得快的指针走到了链表末尾还没有遇到走得慢的指针,那么链表就不包含环;

2024-07-03 21:52:44 578

原创 【剑指offer】JZ22-链表中倒数第k个节点-Python解法

1.首先计算链表的长度L;2.第二次开始从头依次遍历,找到链表的第(L-k+1)个节点,即为所找的节点。

2024-07-01 17:24:06 576

原创 【剑指offer】JZ52-两个链表的第一个公共节点-Python解法

首先分析题目,对于两个单向链表来说,如果从某一个节点开始这两个链表出现了公共节点,那么这两个链表的后续节点都是相同的,不可能再出现分叉,因此就像题目描述里所绘制的图形一样,两个有公共节点而部分重合的链表,其拓扑结构只可能是Y型而不是X型。首先想到的解决问题的方法就是,每当遍历到链表1中的一个结点时,就将链表2整个遍历一遍,如果在链表2中发现与链表1中的当前节点一样的节点,也就找到了两个链表的公共节点,如果没有的话,就继续移动到链表1的下一个节点,直到遍历完整个链表1。

2024-06-24 20:12:27 617

原创 【剑指offer】JZ25-合并两个排序的链表-Python解法

1.在解答时注意看题目给出的复杂度限制,根据限制选择合适的方法解题;2.要注意对特殊链表的分析(如两个待排链表全为空,或者有一个链表为空,或者链表中存在值相等的多个节点),在迭代/递归过程中要体现对特殊情况的说明,否则测试时可能会出现错误。3.在编写代码时脑子里要想到可能会出现的特殊测试用例,并以此来完善代码,提高代码的鲁棒性。

2024-06-23 21:53:45 486

原创 【剑指offer】JZ24-反转链表-Python解法

链表反转即将每个结点的指针从向后变为向前,所以最简单的办法就是遍历原始链表,将遇到的结点指针一一逆向即可,但这样做有一个缺陷,如果我们将当前结点原本向后的指针修改为指向前一个结点的指针,那将会造成链表断裂,从后一个结点开始的链表信息丢失。为了弥补这个缺陷,我们应该额外存储下一个结点。具体实现思路如下:1.设置两个指针,一个表示上一个结点的指针(pre,初始值为空),一个表示当前结点的指针(cur);

2024-06-22 21:14:20 441

原创 【剑指offer】JZ6-从头到尾打印链表-Python解法

1.借助栈的先进后出(LIFO)机制,遍历链表的同时将结点元素压入栈;1.每访问到一个结点的时候,先递归输出他后面的结点,再输出该结点自身;时间复杂度O(N):N是链表的长度,遍历链表花费时间。时间复杂度O(N):N是链表的长度,遍历链表花费时间。时间复杂度O(N):N是链表的长度,递归整个链表。空间复杂度O(N):额外存储结点数据花费的空间。空间复杂度O(N):额外存储逆序数组花费的空间。2.遍历链表,同时将遍历的结点存储如数组;空间复杂度O(N):额外存储栈花费的空间。1.创建存储链表结点的数组;

2024-06-21 16:08:06 447

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除