链表中删除第k个结点

链表中倒数第k个结点

http://www.nowcoder.com/questionTerminal/529d3ae5a407492994ad2a246518148a

要求 javascript

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

方法一:先计数,到k个,然后同步后移

function FindKthToTail(head, k)
{
    if(k<=0)
        return null;
    var pos=1;
    var res=head;
    while(head!=null){
        if(pos<k){
            pos++;
            head=head.next;
            continue;
        }
        if(pos==k){
            pos++;
            head=head.next;
            continue;
        }
        if(pos>k){
            res=res.next;
        }
        head=head.next;
    }
    if(pos<=k){
        return null;
    }
    else{
        return res;
    }
}

方法二:用array进行存放获取数据

function FindKthToTail(head, k)
{
    let val = [];

    while (head) {
        // 之前有一道题是返回值,这道题是返回这个链表对象。。。。
        val.unshift(head);
        head = head.next;
    }

    return val[k - 1];
}
全部评论

相关推荐

一名愚蠢的人类:多少games小鬼留下了羡慕的泪水
投递荣耀等公司10个岗位
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务