问题:
给出一个单链表(不带头节点)和一个数K,请翻转此单链表?
例如:1->2->3->4->5 k = 0; 翻转过后:1->2->3->4->5
1->2->3->4->5 K = 2; 翻转过后:2->1->4->3->5
1->2->3->4->5 K = 10; 翻转过后:5->4->3->2->1
在讨论链表的‘部分’翻转问题之前,先回顾一下链表的逆置问题,如何将一个链表进行逆置?我们以前采用的方式是‘摘节点头插’的方法。假设右链表1->2->3->4->5,新建一个节点指针newHead=NULL,用cur指针指向链表的头节点,将摘下的节点用tmp进行保存,然后将tmp和newHead进行连接,将newHead指向tmp的位置上,如此循环直到cur为NULL结束。
■下面是‘摘节点头插’的简单图示: