leetcode的题目92

反转链表二

反转从位置 m 到 n 的链表。请使用一趟扫描完成反转。

说明:1 ≤ m ≤ n ≤ 链表长度。

示例:

输入: 1->2->3->4->5->NULL, m = 2, n = 4

输出: 1->4->3->2->5->NULL

我的思路:先判断m与n是否一致,如果一致代表不需要反转,返回head;当从第一个结点开始反转(m=1)时,使用“反转链表”中指针的方法进行反转并调整好最后的连接即可,注意链表的长度,当长度为2的时候,不需要调整;当从第二个结点开始反转(m>=2)时,用for循环找出m结点,设置两个指针分别标记m结点前一个结点以及m结点(p1.p2),设置三个结点分别指向m结点、m的下一个结点以及下下个结点,利用for循环进行反转,注意设置好次数,最后调整链表


你可能感兴趣的:(leetcode的题目92)