题目描述
输入一个链表,输出该链表中倒数第k个结点。
解题思路:
将链表放在栈中,因为栈的特性是先进后出,所以依次取出K个即可
import java.util.Stack;
/**
* @author: hyl
* @date: 2019/08/15
**/
public class Que14 {
public class ListNode {
int val;
ListNode next = null;
ListNode(int val) {
this.val = val;
}
}
public ListNode FindKthToTail(ListNode head,int k) {
if(head == null || k <= 0){
return null;
}
Stack<ListNode> stack = new Stack<>();
while (head != null){
stack.push(head);
head = head.next;
}
//判断链表长度是否大于等于长度K
if (stack.size() < k){
return null;
}
k-= 1;
while (k-- > 0){
stack.pop();
}
return stack.pop();
}
}
代码地址:
https://github.com/Han-YLun/jianzhiOffer/blob/master/Solution/src/Que14.java
文章为阿伦原创,如果文章有错的地方欢迎指正,大家互相交流。