输入一个链表, 输出该链表中倒数第 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)
- return null;
- if(head==null)
- return null;
- else{
- ListNode pre = head;
- ListNode end = head;
- for(int i=k-1;i>0;i--){
- end = end.next;
- }
- if(end==null)
- return null;
- else if(end.next==null)
- return pre;
- else{
- while(end.next!=null){
- pre = pre.next;
- end = end.next;
- }
- return pre;
- }
- }
- }
- }
少偷懒.............................................
来源: http://www.bubuko.com/infodetail-3357059.html