リンクリストを入力し、リンクリストの下からk番目のノードを出力します。ほとんどの人の習慣に合わせるために、この質問は1から数え始めます。つまり、リンクリストの終了ノードは下から最初のノードです。
例:リンクリストには、ヘッドノードから始まる6つのノードがあり、それらの値は1、2、3、4、5、6です。このリンクリストの下から3番目のノードは、値が4のノードです。
例:
リンクリストがある場合:1-> 2-> 3-> 4-> 5、およびk = 2。
リンクリストに戻る4-> 5。
回答:
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
class Solution {
public ListNode getKthFromEnd(ListNode head, int k) {
Stack<ListNode> s=new Stack<>();
if(head==null)
return null;
while(head!=null){
s.push(head);
head=head.next;
}
Stack<ListNode> s1=new Stack<>();
if(!s.empty()){
for(int i=0;i<k;i++){
s1.push(s.peek());
s.pop();
}
}
return s1.peek();
}
}