题目描述[原题链接][https://leetcode-cn.com/problems/reverse-linked-list-ii/]
反转从位置 m
到 n
的链表。请使用一趟扫描完成反转。
说明:
1 ≤ m
≤ n
≤ 链表长度。
示例:
输入: 1->2->3->4->5->NULL, m = 2, n = 4
输出: 1->4->3->2->5->NULL
算法描述
把给定的区间的链表节点进行反转,首先找到反转的起始位置,这里要注意是不是头节点
,头节点需要进行单独考虑,找到开始位置后,后面的操作就是惯用的三节点操作,改变每一个节点的指向,直到完成区间的反转;要注意的问题就是如果从头结点开始反转需要考虑这个特殊情况,下面上代码:
C++代码
1 | class Solution { |
Java代码
1 | class Solution { |