随笔分类 -  链表

摘要:题目来源 面试题 02.05. 链表求和 题目详情 给定两个用链表表示的整数,每个节点包含一个数位。 这些数位是反向存放的,也就是个位排在链表首部。 编写函数对这两个整数求和,并用链表形式返回结果。 示例: 输入: (7 -> 1 -> 6) + (5 -> 9 -> 2),即617 + 295 输 阅读全文
posted @ 2023-01-21 10:34 Garrett_Wale 阅读(63) 评论(0) 推荐(0) 编辑
摘要:题目来源 86. 分隔链表 题目描述 给你一个链表的头节点 head 和一个特定值 x ,请你对链表进行分隔,使得所有 小于 x 的节点都出现在 大于或等于 x 的节点之前。 你应当 保留 两个分区中每个节点的初始相对位置。 示例 1: 输入: head = [1,4,3,2,5,2], x = 3 阅读全文
posted @ 2022-03-26 10:34 Garrett_Wale 阅读(62) 评论(0) 推荐(0) 编辑
摘要:题目来源 445. 两数相加 II 题目详情 给你两个 非空 链表来代表两个非负整数。数字最高位位于链表开始位置。它们的每个节点只存储一位数字。将这两数相加会返回一个新的链表。 你可以假设除了数字 0 之外,这两个数字都不会以零开头。 示例1: 输入: l1 = [7,2,4,3], l2 = [5 阅读全文
posted @ 2022-03-25 19:58 Garrett_Wale 阅读(30) 评论(0) 推荐(0) 编辑
摘要:题目来源 114. 二叉树展开为链表 题目描述 给你二叉树的根结点 root ,请你将它展开为一个单链表: 展开后的单链表应该同样使用 TreeNode ,其中 right 子指针指向链表中下一个结点,而左子指针始终为 null 。 展开后的单链表应该与二叉树 先序遍历 顺序相同。 示例 1: 输入 阅读全文
posted @ 2022-03-22 16:46 Garrett_Wale 阅读(50) 评论(0) 推荐(0) 编辑
摘要:题目来源 328. 奇偶链表 题目详情 给定单链表的头节点 head ,将所有索引为奇数的节点和索引为偶数的节点分别组合在一起,然后返回重新排序的列表。 第一个节点的索引被认为是 奇数 , 第二个节点的索引为 偶数 ,以此类推。 请注意,偶数组和奇数组内部的相对顺序应该与输入时保持一致。 你必须在  阅读全文
posted @ 2022-03-07 21:56 Garrett_Wale 阅读(74) 评论(0) 推荐(0) 编辑
摘要:题目来源 460. LFU 缓存 题目描述 请你为 最不经常使用(LFU)缓存算法设计并实现数据结构。 实现 LFUCache 类: LFUCache(int capacity) - 用数据结构的容量 capacity 初始化对象 int get(int key) - 如果键 key 存在于缓存中, 阅读全文
posted @ 2022-03-01 11:26 Garrett_Wale 阅读(46) 评论(0) 推荐(0) 编辑
摘要:题目来源 61. 旋转链表 题目详情 给你一个链表的头节点 head ,旋转链表,将链表每个节点向右移动 k个位置。 示例 1: 输入: head = [1,2,3,4,5], k = 2 输出: [4,5,1,2,3] 示例 2: 输入: head = [0,1,2], k = 4 输出: [2, 阅读全文
posted @ 2022-02-11 10:45 Garrett_Wale 阅读(30) 评论(0) 推荐(0) 编辑
摘要:题目来源 92. 反转链表 II 题目详情 给你单链表的头指针 head 和两个整数 left 和 right ,其中 left <= right 。请你反转从位置 left 到位置 right 的链表节点,返回 反转后的链表 。 示例 1: 输入: head = [1,2,3,4,5], left 阅读全文
posted @ 2022-02-08 21:17 Garrett_Wale 阅读(361) 评论(0) 推荐(0) 编辑
摘要:题目来源 141. 环形链表 题目详情 给你一个链表的头节点 head ,判断链表中是否有环。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。注意:pos 不 阅读全文
posted @ 2022-02-08 20:41 Garrett_Wale 阅读(45) 评论(0) 推荐(0) 编辑
摘要:题目来源 补充题1. 排序奇升偶降链表 题目详情 本文章是对企业题库CodeTop[1]的补充,汇总那些在Leetcode上找不到的面试高频题。 来看一下几篇面经的原文叙述 链表,奇数位置按序增长,偶数位置按序递减,如何能实现链表从小到大?(2020.10 字节跳动-后端)[2] 奇偶生序倒序链表的 阅读全文
posted @ 2022-02-06 10:52 Garrett_Wale 阅读(456) 评论(0) 推荐(0) 编辑
摘要:题目来源 138. 复制带随机指针的链表 题目详情 给你一个长度为 n 的链表,每个节点包含一个额外增加的随机指针 random ,该指针可以指向链表中的任何节点或空节点。 构造这个链表的 深拷贝。 深拷贝应该正好由 n 个 全新 节点组成,其中每个新节点的值都设为其对应的原节点的值。新节点的 ne 阅读全文
posted @ 2022-01-28 10:31 Garrett_Wale 阅读(28) 评论(0) 推荐(0) 编辑
摘要:82. 删除排序链表中的重复元素 II LeetCode_82 题目描述 题解分析 解法一:复杂解法 /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * Li 阅读全文
posted @ 2021-04-01 21:10 Garrett_Wale 阅读(83) 评论(0) 推荐(0) 编辑
摘要:143. 重排链表 LeetCode_143 题目描述 题解分析 本题的解题核心是需要找到原链表的中间节点,然后将中间节点之后的链表进行反转。 如何找到中间节点呢?这里可以使用快慢指针的思想,通过设置slow和fast指针,当fast走到尾结点时,slow指针敲好指向中间节点。 这里的反转链表操作比 阅读全文
posted @ 2021-03-27 21:22 Garrett_Wale 阅读(51) 评论(0) 推荐(0) 编辑
摘要:题目来源 LeetCode_234_回文链表 题目描述 给你一个单链表的头节点 head ,请你判断该链表是否为回文链表。如果是,返回 true ;否则,返回 false 。 示例 1: 输入: head = [1,2,2,1] 输出: true 示例 2: 输入: head = [1,2] 输出: 阅读全文
posted @ 2021-03-22 10:56 Garrett_Wale 阅读(120) 评论(0) 推荐(1) 编辑
摘要:25. K 个一组翻转链表 25. K 个一组翻转链表 题目描述 题解分析 这题的主要解决思路就是链表的翻转,关键是要找到每次翻转的头结点和尾结点。 外层是一个while(true)循环,内存找到本次需要翻转的k个结点的左右边界。 代码实现 解法一:迭代法 /** * Definition for 阅读全文
posted @ 2021-03-20 18:37 Garrett_Wale 阅读(43) 评论(0) 推荐(0) 编辑
摘要:83. 删除排序链表中的重复元素 LeetCode_83 题目描述 相似题目 83. 删除排序链表中的重复元素 + 链表 + 判重 82. 删除排序链表中的重复元素 II + 链表 + 判重 题解分析 解法一:复杂解法 /** * Definition for singly-linked list. 阅读全文
posted @ 2021-03-18 10:10 Garrett_Wale 阅读(50) 评论(0) 推荐(0) 编辑
摘要:206. 反转链表 LeetCode_206 题目详情 解法一:迭代法 package com.walegarrett.interview; /** * @Author WaleGarrett * @Date 2021/2/22 22:30 */ import java.util.List; /** 阅读全文
posted @ 2021-02-23 23:09 Garrett_Wale 阅读(53) 评论(0) 推荐(0) 编辑
摘要:题目来源 LeetCode-146 题目描述 实现 LRUCache 类: LRUCache(int capacity) 以 正整数 作为容量 capacity 初始化 LRU 缓存 int get(int key) 如果关键字 key 存在于缓存中,则返回关键字的值,否则返回 -1 。 void 阅读全文
posted @ 2021-02-21 20:20 Garrett_Wale 阅读(72) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示