【题目】给定一个单链表的头节点head,实现一个调整单链表的函数,使得每k个节点之间逆序,如果最后不够k个节点一组,则不调整最后几个节点。
例如:链表1->2->3->4->5->6->7->8->null,k=3.
调整后为:3->2->1->6->5->4->7->8->null。其中7、8不调整。
public class ReverseKNode {
public static class Node {
public int value;
public Node next;
public Node(int value) {
this.value = value;
}
}
// 使用栈的解法,空间复杂度为O(N)
public static Node reverseKNode1(Node head, int k) {
if (k < 2) {
return head;
}
Stack<Node> stack = new Stack<Node<