JAVAはチェーンテーブルの最後からK番目のノード問題を実現する(『剣指offer』)
タイトルの説明
チェーンテーブルを入力し、チェーンテーブルの最後からk番目のノードを出力します.
問題解決の考え方:
2つのポインタは、まず1番目のポインタと2番目のポインタをヘッダノードに向け、その後、1番目のポインタを(k-1)ステップ正走させ、k番目のノードに到達させる.その後、2つのポインタが同時に後方に移動し、1番目のノードが末尾に達すると、2番目のノードの位置は最後からk番目のノードになります.
回答:
チェーンテーブルを入力し、チェーンテーブルの最後からk番目のノードを出力します.
問題解決の考え方:
2つのポインタは、まず1番目のポインタと2番目のポインタをヘッダノードに向け、その後、1番目のポインタを(k-1)ステップ正走させ、k番目のノードに到達させる.その後、2つのポインタが同時に後方に移動し、1番目のノードが末尾に達すると、2番目のノードの位置は最後からk番目のノードになります.
回答:
/*
public class ListNode {
int val;
ListNode next = null;
ListNode(int val) {
this.val = val;
}
}*/
public class Solution {
public ListNode FindKthToTail(ListNode head,int k) {
if(head==null||k<=0){
return null;
}
ListNode last=head;
for(int i=1;i<k;i++){
if(head.next!=null){
head=head.next;
}else{
return null;
}
}
while(head.next!=null){
head = head.next;
last=last.next;
}
return last;
}
}