链表中倒数第k个节点

题目描述

输入一个链表,输出该链表中倒数第k个结点。

分析

两个节点p和q,刚开始都指向头结点。q先走k-1步,然后p、q一起走。当q走到尾节点时,p刚好在倒数第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 < 1)
return null;
ListNode p = head,q = head;
while (k > 1){
if (q.next != null){
q = q.next;
k--;
}else{
return null;
}
}
while(q.next != null){
p = p.next;
q = q.next;
}
return p;
}
}

欢迎关注公众号: FullStackPlan 获取更多干货

Copyright © 2016 - 2017 LBD All Rights Reserved.

访客数 : | 访问量 :