文章 2024-01-12 来自:开发者社区

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

题目题目链接输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。例如,一个链表有 6 个节点,从头节点开始,它们的值依次是 1、2、3、4、5、6。这个链表的倒数第 3 个节点是值为 4 的节点。示例:给定一个链表: 1->2->3->4->5, 和 k = 2. 返回链表 4->5.解题和leetco....

文章 2024-01-12 来自:开发者社区

剑指 Offer 18:删除链表的节点

题目题目链接给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。返回删除后的链表的头节点。注意:此题对比原题有改动示例 1:输入: head = [4,5,1,9], val = 5 输出: [4,1,9] 解释: 给定你链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9.示例 2:输入: head = [4,5,1,9], ....

文章 2024-01-12 来自:开发者社区

剑指 Offer 06:从尾到头打印链表

题目题目链接输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。示例 1:输入:head = [1,3,2] 输出:[2,3,1]解题方法一:遍历 再反转结果class Solution { public: vector<int> reversePrint(ListNode* head) { vector<int> res; ...

剑指 Offer 06:从尾到头打印链表
文章 2024-01-10 来自:开发者社区

剑指offer常见题 - 链表问题(二)

二叉树相关算法链表相关知识点:链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。知识点一:链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。知识点二:相比于线性表顺序结构(数组),操作复杂。由于不必须按顺序存储,链表在插入的时候可以达....

文章 2024-01-10 来自:开发者社区

剑指offer常见题 - 链表问题(一)

二叉树相关算法链表相关知识点:链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。知识点一:链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。知识点二:相比于线性表顺序结构(数组),操作复杂。由于不必须按顺序存储,链表在插入的时候可以达....

剑指offer常见题 - 链表问题(一)
文章 2023-12-29 来自:开发者社区

剑指offer——链表

题目3:输入一个链表,按链表从尾到头的顺序返回一个ArrayList 题目解题思路:用stack方式是比较容易想到的,递归的方式比较难以想到递归的关键,先向下递归再执行本次操作,这样才会形成反序操作序列(反序操作序列)/** * public class ListNode { * int val; * ListNode next = null; * * ...

文章 2023-12-28 来自:开发者社区

【剑指offer】-复杂链表的复制-25/67

1. 题目描述输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针random指向一个随机节点),请对此链表进行深拷贝,并返回拷贝后的头结点。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)2. 题目分析链表中是有2个指针的,一个指向下一个节点,一个是指向随机的节点想复制链表的话,第一步要复制链表// 复制链表 RandomLis...

文章 2023-12-28 来自:开发者社区

【剑指offer】-从尾到头打印链表-03/67

1. 题目描述:输入一个链表,按链表从尾到头的顺序返回一个ArrayList。2. 题目分析2.1 相似题型一般的思维来讲,该题直接建立链表,然后在建立链表的时候,直接建立的是反转的链表,题型链接如下:数据结构实验之链表二:逆序建立链表该题的要求是返回一个ArrayList(数组),不能简单的使用输入输出实现2.2 c++栈的用法push(x) – 压一个数到栈顶pop() – 移除栈顶的元素,....

文章 2023-12-28 来自:开发者社区

【剑指offer】-合并两个排序的链表-16/67

1. 题目描述输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。2. 题目分析考虑两个链表是否为null,如果是null的话,返回另一个链表设置两个结点:p1、p2分别指向list1、list2,创建一个空链表list3,并设置p3结点指向list3分别遍历两个链表并比较,得出最后注意:返回的是list3.next。因为此时p3开始的值为原始的值3. 题....

文章 2023-12-28 来自:开发者社区

【剑指offer】-反转链表-15/67

1. 题目描述输入一个链表,反转链表后,输出新链表的表头。2. 题目分析链表如下所示:. 首先,定义三个结点,分别指向如下:p1 = null;p2 = head;p3 = head.next;将p2.next(此刻连接1~2的剪头)指向p1,如下所示:可以看到,第一个结点(1)已经完成。因为1~2的链表已经断开,无法遍历,所以,用p1来代替p2,用p2来代替p3,p3向前移,得到如下所示:继续....

【剑指offer】-反转链表-15/67

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

数据库

分享数据库前沿,解构实战干货,推动数据库技术变革

+关注