1,链表逆序
*1,Node * ReverseList(Node head) //链表逆序
2,已知两个链表head1 和head2 各自有序,请把它们合并成一个链表依然有序。(保留所有结点,即便大小相同)
3,已知两个链表head1 和head2 各自有序,请把它们合并成一个链表依然有序,这次要求用递归方法进行。
2,从尾到头打印链表
输入一个链表的头节点,按链表从尾到头的顺序返回每个节点的值(用数组返回)。
如输入{1,2,3}的链表如下图:
返回一个数组为[3,2,1]
3,链表中倒数最后k个结点
输入一个链表,输出一个链表,该输出链表包含原链表中从倒数第k个结点至尾节点的全部节点。
如果该链表长度小于k,请返回一个长度为 0 的链表。
stack栈先进后出
4,判断单链表是否有环
判断给定的链表中是否有环。如果有环则返回true,否则返回false。
空间复杂度O(1)
5,链表反转
输入一个链表,反转链表后,输出新链表的表头。
6,重排链表
7,链表中环的入口结点
给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,返回null。
通过快慢指针,如果有环,则必定快慢指针能碰头。
8,两个链表的第一个公共节点
输入两个无环的单链表,找出它们的第一个公共结点。
9, 判断一个链表是否为回文结构
10,单链表的排序
给定一个无序单链表,实现单链表的排序(按升序排序)。
11,删除有序链表中重复的元素
删除给出链表中的重复元素(链表中元素从小到大有序),使链表中的所有元素都只出现一次