剑指Offer22:链表中倒数第k个节点

矫情吗;* 2022-04-24 08:44 253阅读 0赞

题目:输入一个链表,输出倒数第k个元素,符合大多数人的习惯,最后一个节点,就表示最后一个。

思路:让第一个节点走k-1步,再让第二个节点开始走,这样第一个节点指向最后一个节点的时候,第二个节点就指向,倒数第k个节点。但是,我这里强调一下写代码的健壮性,就是你的代码得应对一下不可预料的情况,你得对错误或者不符合的情况进行排除。

代码:

  1. class ListNode{
  2. int value;
  3. ListNode next;
  4. public ListNode(int value){
  5. this.value = value;
  6. }
  7. }
  8. ListNode FindKthToTail(ListNode pListNode,int k){
  9. if(pListNode==null|| k==0){
  10. return null;
  11. }
  12. ListNode Head = pListNode;
  13. ListNode Last = null;
  14. for(int i=0;i<k-1;i++){
  15. if(Head.next!=null){
  16. Head = Head.next;
  17. }else{
  18. return null;
  19. }
  20. }
  21. Last = pListNode;
  22. while(Head.next!=null){
  23. Head = Head.next;
  24. Last = Last.next;
  25. }
  26. return Last;
  27. }

发表评论

表情:
评论列表 (有 0 条评论,253人围观)

还没有评论,来说两句吧...

相关阅读