簡單做法,直接使用棧儲存那k個結點,然後將這k個結點逆序後連線到鍊錶上去,只需要注意頭節點即可。高階解法直接對鍊錶進行處理,每一次記錄當前逆序分組的第乙個結點和最後乙個結點,也需要考慮頭節點
解法:使用棧、直接對鍊錶進行迭代
**:普通:
public static node reverseknode1(node head,int k)
stackstack = new stack();
node newhead = head;
node cur = null;
node pre = null;
node next = null;
while(cur != null)
cur = next;
} return newhead;
} public static node resign1(stackstack,node left,node right)
node next = null;
while(!stack.isempty())
cur.next = right;
return cur;
}
高階public static node reverseknode2(node head,int k)
node cur = head;
node start = null;
node pre = null;
node next = null;
int count = 1;
while(cur != null)
count++;
cur = next;
} return head;
} public static void resign2(node left,node start,node end,node right)
if(left != null)
start.next = right;
}
當遇見對某幾個結點進行處理的時候,我們就可以使用容器來裝這幾個結點,然後處理完成後在加回原來的鍊錶中 將單鏈表的每k個節點之間逆序
題目 給定乙個單鏈表的頭結點head,實現乙個調整單鏈表的函式,使得每k個節點之間逆序,如果最後不管k個節點一組,則不調整最後幾個節點。example 鍊錶 1 2 3 4 5 6 7 8 nullptr,k 3 調整後 3 2 1 6 5 4 7 8 nullptr 1 include inclu...
將單鏈表的每K個節點之間逆序
將單鏈表的每k個節點之間逆序 給定乙個單鏈表,實現乙個調整單鏈表的函式,使得每 k 個節點之間的值逆序,如果最後不夠 k 個節點一組,則不調整最後幾個節點。輸入描述 第一行乙個整數 n,n 表示單鏈表的節點數量。第二行 n 個整數 val 表示鍊錶的各個節點的值。第三行乙個整數 k。輸出描述 在給定...
1 5將單鏈表向右旋轉k個結點
如何將單鏈表向右旋轉k個位置。給定單鏈表1 2 3 4 5 6 7,k 3,那麼旋轉後的單鏈表變為5 6 7 1 2 3 4 public class sort 前部分有k 1個結點,後半部分有k個結點 所以使用快慢指標移動是可以的,之間維持k個結點 node slow,fast,tmp slow ...