zoukankan      html  css  js  c++  java
  • 剑指offer 15:链表的倒数第k个节点

    题目描述

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

    解题思路

    使用快慢指针法,让快指针先走k步,然后再让慢指针开始走,当快指针到达链表尾部时,慢指针刚好到达倒数第k个节点。

    C++代码实现:

    /*
    struct ListNode {
        int val;
        struct ListNode *next;
        ListNode(int x) :
                val(x), next(NULL) {
        }
    };*/
    class Solution {
    public:
        ListNode* FindKthToTail(ListNode* pListHead, unsigned int k) {
        
    if(pListHead==NULL){ return NULL; } ListNode *p1,*p2; p1=pListHead; int count=0; int pos=k; while(pos>0 && p1!=NULL){ p1=p1->next; pos--; count++; } //如果链表长度不到K,输入不合法,返回NULL if(count!=k){ return NULL; } p2=pListHead; while(p1!=NULL){ p1=p1->next; p2=p2->next; } return p2; } };
  • 相关阅读:
    最短路径问题/Spfa
    cddiv/数组维护
    cfdiv2/c/找规律
    Codeforces Round #343 (Div. 2)【A,B水题】
    POJ 2135_Farm Tour
    POJ 3469_Dual Core CPU
    POJ 3469_Dual Core CPU
    POJ 3281_Dining
    POJ 3281_Dining
    POJ 3041_Asteroids
  • 原文地址:https://www.cnblogs.com/fancy-li/p/11614388.html
Copyright © 2011-2022 走看看