background image

一、单链表

目录
1.单链表反转
2.找出单链表的倒数第 4 个元素
3.找出单链表的中间元素
4.删除无头单链表的一个节点
5.两个不交叉的有序链表的合并
6.有个二级单链表,其中每个元素都含有一个指向一个单链表的指针。写程序

把这个二级链表称一级单链表。
7.单链表交换任意两个元素(不包括表头)
8.

判断单链表是否有环?如何找到环的 起始 点?如何知道环的长度?

9.判断两个单链表是否相交
10.两个单链表相交,计算相交点
11.用链表模拟大整数加法运算
12.单链表排序
13.删除单链表中重复的元素

首先写一个单链表的 C#实现,这是我们的基石:
public class Link
{
    public Link Next;
    public string Data;
    public Link(Link next, string data)
    {
        this.Next = next;
        this.Data = data;
    }
}

其中,我们需要人为地在单链表前面加一个空节点,称其为 head。例如,一

个单链表是 1->2->5,如图所示:

对一个单链表的遍历如下所示:
static void Main(string[] args)
{
    Link head = GenerateLink();
Link curr = head;
while (curr != null)
    {
        Console.WriteLine(curr.Data);
        curr = curr.Next;
    }