博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【剑指offer】九,链表中倒数第k个结点
阅读量:5231 次
发布时间:2019-06-14

本文共 911 字,大约阅读时间需要 3 分钟。

题目描述

输入一个链表,输出该链表中倒数第k个结点。
 
分析:此题为常见的快慢指针问题,java实现时要注意空指针错误以及边界条件。使用两个指针p和q,一个指针先走k-1步,然后第二个指针开始走。当第一个指针指向单链表的最后一个节点时,第二个指针指向倒数第k个节点。代码如下:
1 /* 2 public class ListNode { 3     int val; 4     ListNode next = null; 5   6     ListNode(int val) { 7         this.val = val; 8     } 9 }*/10 public class Solution {11     public ListNode FindKthToTail(ListNode head,int k) {12         if(head==null||k==0){13             return null ;14         }15         ListNode p = new ListNode(0) ;16         ListNode q = new ListNode(0) ;17         p = head ;18         q = head ;19         while(k>1&&p.next!=null){20             p=p.next ;21             k-- ;22         }23         if(k>=2){24             return null ;25         }26         while(p.next !=null&&q.next!=null){27             p=p.next ;28             q=q.next;29         }30         return q ; 31     }32 }

 

转载于:https://www.cnblogs.com/huntertoung/p/4765161.html

你可能感兴趣的文章
ACM模板——康托展开
查看>>
P1025-数的划分
查看>>
P1305-新二叉树
查看>>
LGTB 与大数
查看>>
[POI2009]KAM-Pebbles
查看>>
JavaScript对象
查看>>
bzoj 3696: 化合物
查看>>
LeetCode 28. Implement strStr()
查看>>
LeetCode 15. 3Sum
查看>>
SignalR示例demo
查看>>
ViewPager中使用PhotoView时出现pointerIndex out of range异常
查看>>
实验七——函数定义及调用总结
查看>>
apple-touch-startup-image 制作iphone web应用程序的启动画面
查看>>
Dp Hdu1421 搬寝室
查看>>
C/C++中的可变参函数
查看>>
最简单的二叉树
查看>>
git操作整理
查看>>
集合与深浅拷贝
查看>>
git命令
查看>>
《深入理解Android2》读书笔记(五)
查看>>