题目描述:输入一个链表,输出该链表中倒数第k个结点。
解题思路:使用两个指针,初始化两个指针都带head,然后将其中一个指针移动k-1步,移动到k个结点的部分,然后两个结点一起移动,当其中一个指针到达尾部的时候,另一个指针恰好在倒数第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(k<=0 || head == null)
- return null;
- ListNode pre = head;
- ListNode last = head;
- for(int i=1;i<k;i++){
- if(last.next!=null)
- last = last.next;
- else
- return null;
- }
- while(last.next != null)
- {
- pre = pre.next;
- last = last.next;
- }
- return pre;
- }
- }
扫码关注一起随时随地学习!!!就在洋葱攻城狮,更多精彩,等你来!!