描述
翻转链表中第m个节点到第n个节点的部分
m,n满足1 ≤ m ≤ n ≤ 链表长度
样例
例1:
输入: 1->2->3->4->5->NULL, m = 2 and n = 4,
输出: 1->4->3->2->5->NULL.
例2:
输入: 1->2->3->4->NULL, m = 2 and n = 3,
输出: 1->3->2->4->NULL.
挑战
Reverse it in-place and in one-pass
思考
m到n这段的翻转直接使用翻转链表的算法即可,只需要把循环的条件改为n-m+1即可。主要的是解决翻转链表的前后2个如何处理。这里设置了两个变量 tempFirst 和 tempLast 分别来表示第m-1个 和翻转完成之后的第n-1个。这样处理的问题是m=1的时候要重新处理。
代码
1 | /** |
-------------end of filethanks for reading-------------