【LeetCode刷题-树】--1367.二叉树中的链表

1367.二叉树中的链表 方法:枚举 枚举二叉树中的每个节点为起点往下的路径是否与链表相匹配的路径,为了判断是否匹配设计了一个递归函数dfs(root,head),其中root表示当前匹配到的二叉树节点,head表示当前匹配到的链表节点,整个函数返回布尔值表示是否有一条该节点往下的路径与head节点开始的链表匹配,如匹配返回true,否则返回false,一共有四种情况 链表已经全部匹配完,匹配成功,...

19. 删除链表的倒数第 N 个结点 --力扣 --JAVA

题目 解题思路 删除链表的倒数第n个节点,需要从链表末尾开始计数;设立私有的全局变量用于统计;因为是单向链表,所以需要通过递归获取需要删除的节点的上一个节点;因为是倒置所以需要在递归后进行计数;创建标志位区分特殊情况,需要删除的节点为首节点则无法获取上一节点;在结果返回时判断是否为首节点。 代码展示 class Solution { private int index = 0; private boo...

【CSDN 每日一练 ★☆☆】【蛮力/双指针】删除排序链表中的重复元素

【CSDN 每日一练 ★☆☆】【蛮力/双指针】删除排序链表中的重复元素 蛮力 双指针 题目 给定一个已按照 非递减顺序排列 的整数数组 numbers ,请你从数组中找出两个数满足相加之和等于目标数target 。 函数应该以长度为 2 的整数数组的形式返回这两个数的下标值。numbers 的下标 从 1 开始计数 ,所以答案数组应当满足 1 <= answer[0] < answer[1] <= ...

leetcode刷题日记:160. Intersection of Two Linked Lists(相交链表

给出两个单链表的头结点headA与headB,让我们找出两个链表相接的起始节点,如果两个链表不存在相交结点返回null。 我们就先假设存在这样两个链表链表1与链表2,假设链表1的长度为 L 1 L_1 L1​和 L 2 L_2 L2​,假设对于两个链表,从相交的结点向后数长度为 L 1 , 2 L_{1,2} L1,2​,则在相交结点之前链表1的长度未 L 1 − L 1 , 2 L_1-L_{1...

数据结构与算法之美学习笔记:20 | 散列表(下):为什么散列表和链表经常会一起使用?

目录 前言LRU 缓存淘汰算法Redis 有序集合Java LinkedHashMap解答开篇 & 内容小结 前言 本节课程思维导图: 今天,我们就来看看,在这几个问题中,散列表和链表都是如何组合起来使用的,以及为什么散列表和链表会经常放到一块使用。 LRU 缓存淘汰算法 借助散列表,我们可以把 LRU 缓存淘汰算法的时间复杂度降低为 O(1)。现在,我们就来看看它是如何做到的。 首先,我们来回顾一...

一文搞懂双链表

前言前面有很详细的讲过线性表(顺序表和链表),当时讲的链表以单链表为主,但在实际应用中双链表有很多应用场景,例如大家熟知的LinkedList。 双链表与单链表区别单链表和双链表都是线性表的链式实现,它们的主要区别在于节点结构。单链表的节点包含数据字段 data 和一个指向下一个节点的指针 next,而双链表的节点除了 data 和 next,还包含指向前一个节点的指针 pre。这个区别会导致它们...

234. 回文链表 --力扣 --JAVA

题目 解题思路 判断链表是否为回文链表取决于链表中各个节点的值,所以可以通过存储各节点的值进行对比判断;链表的长度在遍历之前是无法获取的,所以使用list比链表相对好一点;回文链表是对称链表; 代码展示 class Solution { public boolean isPalindrome(ListNode head) { List<Integer> data = new ArrayList<>()...

【LeetCode刷题-链表】--876.链表的中间结点

876.链表的中间结点 /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val) { this.val = val; } * ListNode(int val, ListNode next) { t...

【LeetCode刷题-链表】--203.移除链表元素

203.移除链表元素 方法:定义一个节点指向头节点head,避免头结点单独操作 /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val) { this.val = val; } * ListNode...

【LeetCode刷题-链表】--82.删除排序链表中的重复元素II

82.删除排序链表中的重复元素II 由于链表是排好序的,所以只需要对其进行一次遍历即可,比较相邻节点对应的值 /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val) { this.val = va...
© 2024 LMLPHP 关于我们 联系我们 友情链接 耗时0.014642(s)
2024-05-14 22:09:29 1715695769