將單鏈表的每K個結點逆序

2022-09-22 06:00:12 字數 1072 閱讀 1374

簡單做法,直接使用棧儲存那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 ...