首页 > 其他 > 详细

【LeetCode】Reverse Linked List II

时间:2014-05-11 16:04:23      阅读:397      评论:0      收藏:0      [点我收藏+]

Reverse a linked list from position m to n. Do it in-place and in one-pass.

For example:
Given 1->2->3->4->5->NULLm = 2 and n = 4,

return 1->4->3->2->5->NULL.

Note:
Given mn satisfy the following condition:
1 ≤ m ≤ n ≤ length of list.

bubuko.com,布布扣
public class Solution {
    public ListNode reverseBetween(ListNode head, int m, int n) {
        if(m==n||m>n)
            return head;
        int len = n-m;
        ListNode root = head;
        m--;
        while(m!=0&&root!=null){
            root = root.next;
            m--;
        }
        ListNode cur = root;
        while(len!=0&&len>0){
            ListNode temp = cur;
            int i=len;
            while(i!=0){
                temp=temp.next;
                i--;
            }
                
            int tempv = cur.val;
            cur.val=temp.val;
            temp.val=tempv;
            len-=2;
            cur=cur.next;
        }
        
        return head;
        
    }
}
bubuko.com,布布扣

 

【LeetCode】Reverse Linked List II,布布扣,bubuko.com

【LeetCode】Reverse Linked List II

原文:http://www.cnblogs.com/yixianyixian/p/3721805.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!