剑指offer第22~30题

22. 链表中倒数第 K 个结点

题目描述
输入一个链表,输出该链表中倒数第k个结点。
解题思路
设链表的长度为 N。设两个指针 P1 和 P2都在链表头节点,然后先让 P1向前 移动 K 个节点,则还有 N - K 个节点可以移动。此时让 P1 和 P2 同时移动,可以知道当 P1 移动到链表结尾时,P2 移动到 N - K 个节点处,该位置就是倒数第 K 个节点。(解释:就是让p1领先p2节点k个位置,然后两个节点一起以相同速度向前跑,最后当p2到终点的时候,p1节点就离终点距离为k
在这里插入图片描述
在这里插入图片描述

23. 链表中环的入口结点

题目描述
一个链表中包含环,请找出该链表的环的入口结点。要求不能使用额外的空间
小疑问:笔者对这道题的解法还是存留些许疑问
详细参考:https://github.com/CyC2018/CS-Notes/blob/master/notes/剑指 offer 题解.md#23-链表中环的入口结点

24. 反转链表

题目描述
输入一个链表,反转链表后,输出新链表的表头。
解题思路:
先反转第一个节点;
然后后面的依次反转;
在这里插入图片描述
还有一种是迭代的方法:就是首和尾交换,正数第2和倒数第2交换,正数第3和倒数第3交换,…。

25. 合并两个排序的链表

题目描述
输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。
在这里插入图片描述
解题思路
在这里插入图片描述
在这里插入图片描述
解释:上面的cur和head是一样的,把head的引用赋给了cur,改变cur也就相当于改变了head,所以最后返回head.next也是可以的

26. 树的子结构

题目描述
输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)
在这里插入图片描述
解答:
在这里插入图片描述

27. 二叉树的镜像

题目描述
操作给定的二叉树,将其变换为源二叉树的镜像。
在这里插入图片描述
在这里插入图片描述

28 对称的二叉树

题目描述
请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。
在这里插入图片描述
在这里插入图片描述

29. 顺时针打印矩阵

在这里插入图片描述
在这里插入图片描述

30. 包含 min 函数的栈

题目描述
定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Java全栈研发大联盟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值