LeetCode链表操作常见面试题汇总

  1. 链表排序(插入排序,归并排序)

    LeetCode#147 LeetCode#148

    1.1 插入排序:定义三个指针pre,curr,next,将curr插入到pre和pre.next之间

    [插入排序思路和代码]
    (http://blog.csdn.net/u012559634/article/details/70238324)

    1.2 归并排序:定义两个指针,一个每次移动一步,一个每次移动两步,则移动慢的指针最后移动到链表中间,然后采用递归分治的思想

    [归并排序思路和代码]
    (http://blog.csdn.net/u012559634/article/details/70231947)

  2. 合并两个已排序的列表
    LeetCode#21

    [有序链表合并]
    (http://blog.csdn.net/u012559634/article/details/70488583)

  3. 链表相交
    LeetCode#160

    [求两个链表相交的起始节点]
    (http://blog.csdn.net/u012559634/article/details/70491456)

  4. 反转链表
    LeetCode#206 剑指offer面试题16
    [反转单链表]
    (http://blog.csdn.net/u012559634/article/details/70493743)

  5. 从尾到头打印链表
    剑指offer面试题5

  6. 链表分区
    LeetCode#86. Partition List

    [给定x,将链表中比x大的放在x的右边,比x小的放在x的左边]
    (http://blog.csdn.net/u012559634/article/details/70306545)

  7. 删除链表节点
    LeetCode#237. Delete Node in a Linked List 剑指offer面试题13

    [删除链表某个节点]
    (http://blog.csdn.net/u012559634/article/details/70510814)

  8. 删除链表中等于某个值的节点
    LeetCode#203. Remove Linked List Elements

    [删除值为x的所有节点]
    (http://blog.csdn.net/u012559634/article/details/70514500)

  9. 判断链表是否为回文(链表节点的值都为整数)
    LeetCode#234. Palindrome Linked List

    将前半部分的链表反转
    [链表回文判断]
    (http://blog.csdn.net/u012559634/article/details/70521486)

  10. 链表重新排列
    LeetCode#143.Reorder List
    [链表按照规则重新排序(规则是第一个元素的next指针指向倒数第一个元素,第二个元素的next的指针指向倒数第二个元素,按照这个规则依次进行指针调整)]

    (http://blog.csdn.net/u012559634/article/details/71023263)

  11. 删除链表倒数第n个元素
    LeetCode#19. Remove Nth Node From End of List
    剑指offer面试15:查找链表中倒数第k个元素
    [删除链表倒数第n个元素]
    (http://blog.csdn.net/u012559634/article/details/72853933)

  12. 单链表与环相关题目(单链表是否有环,单链表环的起点,单链表环的长度,两个链表是否相交)
    LeetCode#141 LeetCode#142
    题目总结博客链接请戳这里好吗

猜你喜欢

转载自blog.csdn.net/u012559634/article/details/70486837