LeetCode记录之——Reverse Nodes in k-Group

这次题目Reverser Nodes in k-Group

这道题就是在考察对链表的熟悉度吧,简而言之就是链表的逆序问题,唯一需要注意的就是要提前判断当前链表长度是否满足k。

递归可以简化逻辑。

public class Solution {
    public ListNode reverseKGroup(ListNode head, int k){
		ListNode tmp = head;
		int i = 0;
		while(tmp!=null && i < k){
			tmp = tmp.next;
			i++;
		}
		if(i != k || k == 1)
		{
			return head;
		}
		ListNode q = head, p = head.next, t = head.next.next;
		i = 0;
		while(i < k - 1){ // java while(true)的话后面不让跟语句,跟纠结
			p.next = q;
			i++;
			if(i == k-1)  //这里暂时没想到好的解决办法,只能这样手动判断
			{break;}
			q = p;
			p = t;
			t = t.next;
		}
		head.next = reverseKGroup(t,k);
		return p;
		
	}
}


你可能感兴趣的:(LeetCode记录之——Reverse Nodes in k-Group)