求单链表倒数第k个节点

2019-09-28  本文已影响0人  ios周周

思路:

定义两个指针,从链表首元结点开始第一个指针先向前走 k-1 步,然后两个指针一起向前遍历,直到第一个指针到达链表的尾结点,此时第二个指针所指的结点即为所求

特殊情况判断:

1 链表结点总数小于k

2 k为0

3 链表为null

LNode*getReverseKNode(LinkList list,int k)

{

    if(list==NULL||k==0) {

        return NULL;

    }

    LNode*temp = list;

    for(int i=0; i<k-1;i++) {

        if(temp->next==NULL) {

            returnNULL;

        }

        temp=temp->next;

    }

    LNode*result = list;

    while(temp->next!=NULL) {

        temp=temp->next;

        result = result->next;

    }

    printf("result =%d",result->data);

    return result;

}

上一篇 下一篇

猜你喜欢

热点阅读