代码随想录——链表 刷题记录

链表数据结构

public class ListNode {
   
	int val;
    ListNode next;
    // 构造函数
    public ListNode() {
   
    }
    public ListNode(int val) {
   
    	this.val = val;
	}
    public ListNode(int val, ListNode next) {
   
    	this.val = val;
        this.next = next;
	}
}

203.移除链表元素

707.设计链表

  • 单链表
  • 双链表
public static class DoubleListNode {
   
        int val;
        DoubleListNode prev;
        DoubleListNode next;

        public DoubleListNode() {
   
        }

        public DoubleListNode(int val) {
   
            this.val = val;
        }

        public DoubleListNode(int val, DoubleListNode prev, DoubleListNode next) {
   
            this.val = val;
            this.prev = prev;
            this.next = next;
        }
    }
  • 注意参数index的大小范围判断

206.反转链表

  • 原地反转,更改每个节点的node值
  1. 迭代法(设置一个temp用来暂时保存下一位节点)
while (p != null) {
   
    temp = p.next;
    p.next = pre;
    pre = p;
	p = temp;
}
  1. 递归法(和迭代法思想相似,每次递归prev和cur)
  2. 虚拟头节点头插法
  3. 栈(节点入栈,注意最后一个弹出的节点next为空)
// 创建栈
Stack<ListNode> stackNode = new Stack<ListNode>();

24.两两交换链表中的节点

  • 先定义一个prev的值就好,pq的值可以在while中定义

19.删除链表的倒数第N个节点

  • 快慢指针法,快指针先移动n,然后一起移动,让slow停在删除的前一个位置

面试题02.07 链表相交

  • 算出AB链表的长度值,将长的链表指针先移动长度差值,然后一起移动判断节点是否相等

142.环形链表II

视频讲解
可以把环分成x, y, z,分析三者之间的数学关系

  • 慢指针不到一圈就被快指针追上
  • 快慢指针相遇的位置到环入口距离 = 链表头到环入口的距离

相关推荐

  1. 代码随想—— 记录

    2023-12-16 22:06:02       66 阅读
  2. 代码随想记录】LeetCode704二分查找

    2023-12-16 22:06:02       35 阅读
  3. 代码随想

    2023-12-16 22:06:02       39 阅读
  4. 代码随想-回溯

    2023-12-16 22:06:02       28 阅读
  5. 代码随想笔记

    2023-12-16 22:06:02       32 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-16 22:06:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-16 22:06:02       101 阅读
  3. 在Django里面运行非项目文件

    2023-12-16 22:06:02       82 阅读
  4. Python语言-面向对象

    2023-12-16 22:06:02       91 阅读

热门阅读

  1. arcgis api for js 中的query实现数据查询

    2023-12-16 22:06:02       61 阅读
  2. Hadoop

    Hadoop

    2023-12-16 22:06:02      59 阅读
  3. 混淆矩阵及其在 Python 中的应用

    2023-12-16 22:06:02       54 阅读
  4. Python中的time_symmetrize介绍及示例代码

    2023-12-16 22:06:02       56 阅读
  5. SCAU:18067 字符统计

    2023-12-16 22:06:02       55 阅读
  6. 力扣94. 二叉树的中序遍历

    2023-12-16 22:06:02       49 阅读