数据结构与算法
未读
力扣学习笔记——328. 奇偶链表
解题思路 使用了链表交换的概念,引入的temp节点作为链表交换并确定交换起始位置。 图解: 实现代码 class Solution {
public ListNode swapPairs(ListNode head)
数据结构与算法
未读
力扣学习笔记——328. 奇偶链表
解题思路 这题主要运用了双指针之间的交替,画图理解的话就很简单了: 实现代码 class Solution {
public ListNode oddEvenLis
数据结构与算法
未读
力扣学习笔记——876. 链表的中间结点
解题思路 经典的快慢针案例,当快指针走到头的时候,慢指针就会正好在链表中间节点 实现代码 class Solution {
public ListNode middleNode(ListN
数据结构与算法
未读
力扣学习笔记——138. 随机链表的复制
解题思路 使用递归回溯的特性,可以直接将一个新结点完美拼接,不论是否初始化。 图解: 实现代码 class Solution {
Map<Node, Node> cacheNode = new HashMap<>();
数据结构与算法
未读
力扣学习笔记——430. 扁平化多级双向链表
解题思路 本题主要考验的是DFS(深度优先遍历) 懒了,自己拖着看吧。。。 图解: 实现代码 /*
// Definition for a Node.
class Node {
public int val;
public Node prev;
public Node nex
数据结构与算法
未读
力扣学习笔记——141. 环形链表
解题思路 本题就是一个经典的快慢指针案例,关于快慢指针可以看:https://leetcode.cn/leetbook/read/linked-list/jcp57/ 参考幻灯片,点击后可以使用键盘上下键↕控制:
数据结构与算法
未读
力扣学习笔记——82. 删除排序链表中的重复元素 II
解题思路 运用链表的next和next.next特性,将双指针作为一个指针操作,参考幻灯片,点击后可以使用键盘上下键↕控制: