本文主要是介绍剑指offer 22:链表中倒数最后k个结点,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
剑指offer 22
题目:
输入一个长度为 n 的链表,设链表中的元素的值为 ai ,返回该链表中倒数第k个节点。
如果该链表长度小于k,请返回一个长度为 0 的链表。
方法一:栈
暴力将节点全部压进栈中,
由于栈是头插头取,后进先出,顺序正好颠倒;
求第k个,就pop()出k次即为结果;
public class Solution {public ListNode FindKthToTail (ListNode head, int k) {ListNode r=null;// base caseif(head==null){return r;}Stack<ListNode> s=new Stack<>();ListNode curr=head;while(curr!=null){s.push(curr);curr=curr.next;}// 当k大于节点个数时!if(k>s.size()){return r;}// 弹出k次级为倒数第k个节点;for(int i=0;i<k;i++){r=s.pop();}return r;}
}
这篇关于剑指offer 22:链表中倒数最后k个结点的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!