文章 2023-09-14 来自:开发者社区

【Java】剑指offer(23)链表中环的入口结点

题目一个链表中包含环,如何找出环的入口结点?例如,在图3.8的链表中,环的入口结点是结点3。思路1.确定链表是否有环:通过两个不同速度的指针确定,当两个指针指向同一个结点时,该结点为环中的一个结点。2.确定环中结点的数目n:指针走一圈,边走边计数3.找到环的入口:从头结点开始,通过两个相差为n的指针来得到(即寻找链表中倒数第n个结点)更简单的思路:【LeetCode】142. Linked Li....

文章 2023-09-14 来自:开发者社区

【Java】剑指offer(24)反转链表

题目定义一个函数,输入一个链表的头结点,反转该链表并输出反转后链表的头结点。思路方法一:使用三个指针(pre,p,next)进行实现。令p指向pre,next则是用于防止链表断裂(很简单,详见代码)。方法二(递归):找到最后一个结点作为返回值,递归函数中,找到最后的头结点后,开始进行每个结点next值的转换。测试算例 ****1.功能测试(链表有多个或一个结点)2.特殊测试(头结点为null)J....

文章 2023-09-14 来自:开发者社区

【Java】剑指offer(32)从上往下打印二叉树

题目(一)从上往下打印出二叉树的每个结点,同一层的结点按照从左到右的顺序打印。(二)从上到下按层打印二叉树,同一层的结点按从左到右的顺序打印,每一层打印到一行。(三)请实现一个函数按照之字形顺序打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右到左的顺序打印,第三行再按照从左到右的顺序打印,其他行以此类推。思路(一)不分行从上往下打印二叉树:该题即为对二叉树的层序遍历,结点满足先进先出的....

文章 2023-09-14 来自:开发者社区

【Java】剑指offer(31)栈的压入、弹出序列

题目输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1、2、3、4、5是某栈的压栈序列,序列4、5、3、2、1是该压栈序列对应的一个弹出序列,但4、3、5、1、2就不可能是该压栈序列的弹出序列。思路建立一个栈,按照压栈序列依次进行入栈操作,按出栈序列的顺序依次弹出数字。在出栈时,若下一个要出栈的数字与栈顶数字相同则弹出。如....

文章 2023-09-14 来自:开发者社区

【Java】 剑指offer(30) 包含min函数的栈

题目定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的min函数。在该栈中,调用min、push及pop的时间复杂度都是O(1)。思路最初想法是定义一个成员变量min来存放最小元素,但是当最小元素弹出后,min就需要相应改变,所以必须把每次的最小值都存储下来。考虑采用一个辅助栈来存放最小值:栈 3,4,2,5,1辅助栈 3, 3,2,2,1(压入时,把每次的最小元素(之前最小元素与新入....

文章 2023-09-14 来自:开发者社区

【Java】剑指offer(29)顺时针打印矩阵

题目输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。思路每次打印矩阵最外面的一圈(用方法printMatrixInCircle()表示),每次都是这个操作,所以可以采用递归。每次打印矩阵的左上角的横纵坐标相同,即为start,而其余三个角的坐标都与行列数以及start有关,因此只需要for循环即可实现打印。当然,其实只要针对start进行循环判断, start*2的值小于行数和列数....

文章 2023-04-30 来自:开发者社区

Java 剑指 Offer 22. 链表中倒数第k个节点

 输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。例如,一个链表有 6 个节点,从头节点开始,它们的值依次是 1、2、3、4、5、6。这个链表的倒数第 3 个节点是值为 4 的节点。编辑代码如下:/** * Definition for singly-linked list. * public class List...

Java 剑指 Offer 22. 链表中倒数第k个节点
文章 2022-10-09 来自:开发者社区

[java刷算法]牛客—剑指offer二叉树

文章目录✨今日三剑JZ32 从上往下打印二叉树题目描述思路详解代码与结果JZ33 二叉搜索树的后序遍历序列题目描述思路详解代码与结果JZ34 二叉树中和为某一值的路径(二)题目描述思路详解代码与结果JZ32 从上往下打印二叉树题目描述思路详解二叉树的层次遍历就是按照从上到下每行,然后每行中从左到右依次遍历,得到的二叉树的元素值。对于层次遍历,我们通常会使用队列来辅助:因为队列是一种先进先出的数据....

[java刷算法]牛客—剑指offer二叉树
文章 2022-10-08 来自:开发者社区

[java刷算法]牛客—剑指offer矩阵的打印,栈的实现与特殊栈

文章目录✨今日算法三题JZ29 顺时针打印矩阵题目描述思路详解代码与结果JZ30 包含min函数的栈题目描述思路详解代码与结果JZ31 栈的压入、弹出序列题目描述思路详解代码与结果JZ29 顺时针打印矩阵题目描述思路详解这道题我们使用模拟,我们想象有一个矩阵,从第一个元素开始,往右到底后再往下到底后再往左到底后再往上,结束这一圈,进入下一圈螺旋。step 1:首先排除特殊情况,即矩阵为空的情况。....

[java刷算法]牛客—剑指offer矩阵的打印,栈的实现与特殊栈
文章 2022-10-08 来自:开发者社区

[java刷算法]牛客—剑指offer树的子结构,对称树,树的镜像

文章目录✨今日三剑JZ26 树的子结构题目描述思路详解代码与结果JZ27 二叉树的镜像题目描述思路详解代码与结果JZ28 对称的二叉树题目描述思路详解代码与结果JZ26 树的子结构题目描述思路详解本题我们使用两层前序遍历既然是要找到A树中是否有B树这样子树,如果是有子树肯定是要遍历这个子树和B树,将两个的节点一一比较,但是这样的子树不一定就是A树根节点开始的,所以我们还要先找到子树可能出现的位置....

[java刷算法]牛客—剑指offer树的子结构,对称树,树的镜像

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。

产品推荐

Java开发者

Java开发者成长课堂,课程资料学习,实战案例解析,Java工程师必备词汇等你来~

+关注