题解 | #链表内指定区间反转#

链表内指定区间反转

http://www.nowcoder.com/practice/b58434e200a648c589ca2063f1faf58c

[链表内指定区间反转]

我感觉我好蠢啊...

不过还是做出来了

Java代码如下:

public class Solution {
    /**
     * @param head ListNode类
     * @param m    int整型
     * @param n    int整型
     * @return ListNode类
     */
    public ListNode reverseBetween(ListNode head, int m, int n) {
        ListNode flag = head;
        ListNode beforeReverse = null;
        int index = 1;
        while (index != m) {
            beforeReverse = flag;
            flag = flag.next;
            index++;
        }
        ListNode node = flag;
        if (n == m) {
            return head;
        } else if (n - m == 1) {
            flag = flag.next;
            node.next = flag.next;
            flag.next = node;
            if (beforeReverse != null) {
                beforeReverse.next = flag;
                return head;
            } else {
                return flag;
            }
        }
        ListNode before = flag;
        flag = flag.next;
        ListNode after = flag.next;
        while (index != n) {
            flag.next = before;
            before = flag;
            flag = after;
            if (after != null) {
                after = after.next;
            }
            index++;
        }
        if (beforeReverse != null) {
            beforeReverse.next.next = flag;
            beforeReverse.next = before;
            return head;
        } else {
            node.next = flag;
            return before;
        }
    }
}



全部评论

相关推荐

不愿透露姓名的神秘牛友
11-27 10:28
点赞 评论 收藏
分享
11-27 17:08
已编辑
牛客_产品运营部_私域运营
腾讯 普通offer 24k~26k * 15,年包在36w~39w左右。
点赞 评论 收藏
分享
Yushuu:你的确很厉害,但是有一个小问题:谁问你了?我的意思是,谁在意?我告诉你,根本没人问你,在我们之中0人问了你,我把所有问你的人都请来 party 了,到场人数是0个人,誰问你了?WHO ASKED?谁问汝矣?誰があなたに聞きましたか?누가 물어봤어?我爬上了珠穆朗玛峰也没找到谁问你了,我刚刚潜入了世界上最大的射电望远镜也没开到那个问你的人的盒,在找到谁问你之前我连癌症的解药都发明了出来,我开了最大距离渲染也没找到谁问你了我活在这个被辐射蹂躏了多年的破碎世界的坟墓里目睹全球核战争把人类文明毁灭也没见到谁问你了😆
点赞 评论 收藏
分享
评论
1
收藏
分享
牛客网
牛客企业服务