1.求单链表中间的节点,其中如果单链表的节点个数为偶数n,则节点为n/2-1,当节点个数为奇数时,节点为中间那个节点。
解法:使用慢指针以及快指针,快指针移动两次,慢指针移动一次,这样可以找到中间节点。
2.求单链表中的倒数第k个节点,k为合适的值
解法:使用两个指针,一个指针先移动k次,然后两个指针同时移动,当一个指针移动到链表末尾时,另外一个指针已经移动到单链表的倒数第k个节点处。
3.实现单链表的反转
解法:使用三个指针,一个指针指向链表头,一个指针指向链表第一个节点(开始时,并且一直指向),另外一个指针指向需要进行反转的节点。
4.实现单链表的对折(链表头->链表尾->链表第二个元素->链表倒数第二个元素--->中间元素)
解法:使用上诉求解链表中间节点的方法将单链表分为前后两部分,然后实现两个链表的插入。