zoukankan      html  css  js  c++  java
  • leetcode--Reverse Nodes in k-Group

    Given a linked list, reverse the nodes of a linked list k at a time and return its modified list.

    If the number of nodes is not a multiple of k then left-out nodes in the end should remain as it is.

    You may not alter the values in the nodes, only nodes itself may be changed.

    Only constant memory is allowed.

    For example,
    Given this linked list: 1->2->3->4->5

    For k = 2, you should return: 2->1->4->3->5

    For k = 3, you should return: 3->2->1->4->5

    public class Solution {
        public ListNode reverseKGroup(ListNode head, int k) {
           int length = 0;
    		ListNode currentNode = head;
    		while(currentNode != null){
    			++length;
    			currentNode = currentNode.next;
    		}
    		
    		if(k <= 1 || head == null || head.next == null || length < k)
    			return head;		
    		ListNode newHead = new ListNode(0);
    		newHead.next = head;
    		currentNode = newHead;
    		ListNode start = head;
    		while(length >= k) {
    			ListNode end = moveNodes(start, k), nextStart = end.next;
    			ListNode follow = nextStart, current = start, temp = start.next;
    			while(current != nextStart){
    				current.next = follow;
    				follow = current;
    				current = temp;
    				if(temp != null)
    					temp = temp.next;
    			}
    			currentNode.next = end;
    			currentNode = start;
    			start = nextStart;
    			length -= k;
    		}
    		return newHead.next;
    	}
    	    
    	private ListNode moveNodes(ListNode start, int k){
    	    ListNode end = start;
    		int i = 1;
    		while(end.next != null && i < k){
    			end = end.next;
    			++i;
    		}
    		return end;
        }
    }
    

      

  • 相关阅读:
    open系统调用flow之do_last()
    interval tree
    kernel exception时打印出的ESR相关信息
    VFS四大struct:file、dentry、inode、super_block
    vma
    CPU cache
    process mngr misc
    java.io.IOException: Unable to unwrap data, invalid status [CLOSED]
    菜鸟学自动化测试(七)selenium RC 工作原理
    OCX开发与第三方OCX封装
  • 原文地址:https://www.cnblogs.com/averillzheng/p/3807290.html
Copyright © 2011-2022 走看看