• LeetCode链表题小记


    本文将LeetCode上大部分链表类题,按照思路整理在一块。

    比较巧妙的题

    • 138 复制带随机指针的链表:三部曲
    • 141 环形链表
    • 142 环形链表 II
    • 160 相交链表

    二分、递归、合并

    • 21 合并两个有序链表
    • 23 合并K个排序链表:二分+递归,类似归并递归排序
    • 109 有序链表转换二叉搜索树:二分+递归
    • 148 排序链表:二分+递归

    用链表表示一个数(逆序或正序),两数相加

    • 2 两数相加
    • 445 两数相加 II :需要双栈

    链表翻转:定位待翻转区间前一个结点p1,得到区间第一个结点p2,持续拎出p2->next插到p1后面

    • 206 反转链表:全部翻转
    • 92 反转链表 II:指定区间翻转
    • 24 两两交换链表中的节点
    • 25 K 个一组翻转链表
    • 234 回文链表
    • 143 重排链表:L1/Ln/L2/Ln-1...

    删除结点:也需要定位前面一个结点

    • 203 移除链表元素:删除结点值等于给定值的结点
    • 83 删除排序链表中的重复元素:保留第一个重复元素
    • 82 删除排序链表中的重复元素 II:不保留第一个重复元素
    • 19 删除链表的倒数第N个节点:需要确保N为有效值,然后夹板
    • 237 删除链表中的节点:无返回值地删除指定结点,乾坤大挪移
    • 面试题 02.01 移除重复节点:删除未排序链表中的重复节点,保留最开始出现的节点,需哈希表

    直白题

    • 61 旋转链表:首尾相接再切断
    • 86 分隔链表:左右小推车
    • 147 对链表进行插入排序

    类似思想题

    • 202 快乐数。第一版思路:首先数不会一直膨胀下去,会保证在三位数以内;因此走了几百步以内必然会重复;判断终止条件就是遇到1或者重复数,可以数组/哈希表/集合来记录。优化思路:一系列数可以看做一个链表,重复数就变成了链表有环问题,用快慢指针。
  • 相关阅读:
    Android程序反编译的方法(转)
    VMware的Easy Install安装
    Oracle ORA12514:TNS:监听程序当前无法识别连接描述符中请求的服务
    Java Eclipse 如何导入外部Jar包
    Oracle IMP00010: 不是有效的导出文件,标题验证失败
    怎样取消Windows 2003 server 意外关机提示
    没有文件扩展“.vbs”的脚本引擎的解决方案
    Oracle init.ora常用配置详解
    eclipse断点调试 出现Source not found
    VMware Workstation 8
  • 原文地址:https://www.cnblogs.com/inchbyinch/p/13021086.html
Copyright © 2020-2023  润新知