美文网首页
链表中倒数第k个节点

链表中倒数第k个节点

作者: 我的天气很好啦 | 来源:发表于2018-10-09 21:09 被阅读0次

    🍞环境:牛客的编译环境
    🍰语言:JavaScript
    ☕️难点:..一般
    🍊题目:输入一个链表,输出该链表中倒数第k个结点。
    🌟解题思路:我的方法是遍历一遍链表,边遍历边存入一个数组中,之后再直接利用数组下标去读取倒数第k个结点。
    但是我看讨论里面有的朋友会用另一种方法去解题,从第一个开始,知道找到第k个之后,让第一个和第k个同时向后移动,当第k个的next为null时,就说明第一个此时所指的结点是倒数第k个。
    🍇我的代码:

    /*function ListNode(x){
        this.val = x;
        this.next = null;
    }*/
    function FindKthToTail(head, k)
    {
        // write code here
        var node = head;
        var list = [];
        var result = null;
        if(head != null){
            while(node){
                list.push(node);
                node = node.next;
            }
            return list[list.length - k];
         }
        else return null;
    }
    

    🍌别人的代码:

    public class Solution {
    
     public ListNode FindKthToTail(ListNode head,int k) {
    
     if(head==null||k<=0){
    
     return null;
    
     }
    
     ListNode pre=head;
    
     ListNode last=head;       
    
     for(int i=1;i<k;i++){
    
     if(pre.next!=null){
    
     pre=pre.next;
    
     }else{
    
     return null;
    
     }
    
     }
    
     while(pre.next!=null){
    
     pre = pre.next;
    
     last=last.next;
    
     }
    
     return last;
    
     }
    
    }
    
    

    相关文章

      网友评论

          本文标题:链表中倒数第k个节点

          本文链接:https://www.haomeiwen.com/subject/omoyaftx.html