leetcode 문제 풀이 K 세트 반전 링크
8417 단어 leetcode 문제 풀이 학습 기록
k 는 정수 로 링크 의 길이 보다 작 거나 같 습 니 다.
만약 에 노드 총수 가 k 의 정수 배가 아니라면 마지막 에 남 은 노드 를 원래 의 순서 로 유지 하 십시오.
:
:1->2->3->4->5
k = 2 , : 2->1->4->3->5
k = 3 , : 3->2->1->4->5
:
。
, 。
출처: 스냅 백 (LeetCode) 링크:https://leetcode-cn.com/problems/reverse-nodes-in-k-group 저작권 은 인터넷 에 귀속 된다.상업 전 재 는 정부 에 연락 하여 권한 을 부여 해 주 십시오. 비 상업 전 재 는 출처 를 밝 혀 주 십시오.
방법 이 비교적 둔 하 다. 배열 로 옮 겨 다 닌 다음 에 k 의 배수 역순 으로 새로운 링크 에 출력 한다.
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
class Solution {
public ListNode reverseKGroup(ListNode head, int k) {
List<Integer> list = new ArrayList<>();
while(head!=null){
list.add(head.val);
head = head.next;
}
ListNode resNode = new ListNode(0);
ListNode tem = resNode;
int times = list.size()/k;
for(int i=1;i<=times;i++){
int start = (i-1)*k;
int end = i*k-1;
for(int j=end;j>=start;j--){
tem.next=new ListNode(list.get(j));
tem = tem.next;
}
}
for(int i=times*k;i<list.size();i++){
tem.next=new ListNode(list.get(i));
tem = tem.next;
}
return resNode.next;
}
}