摘要:
本文主要介绍解决单向链表上的一些操作的思路和代码实现。主要的问题包括以下几点:
1 向单向链表中的插入一个节点
2 删除单向链表中的一个节点
3 查找单向链表中的一个节点
扩展问题1:查找单向链表中的倒数第k个节点。
扩展问题2:查找单向链表中的中间节点,当节点个数为偶数时返回中间两个元素中的前者(后者)
4反转单向链表(非递归实现)
5反转单向链表(递归实现)
6判断单向链表是否有环
7判断两个单向链表是否相交
扩展问题:返回两个链表的第一个交点。
8 用单链表实现栈,要求push和pop的时间复杂度为O(1)
9 用单链表实现队列,要求enQueue和deQueue的时间复杂度为O(1)
10 在一个链表中删除另一个链表中的元素(即求差集(A-B))
阅读全文