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

    题目描述:

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

    解题思路:

    扫描一遍链表,利用栈存每一个结点,则出栈的顺序就是反向的链表输出,对应出栈操作k次的栈顶即为所求。

    注意:当链表为空,k为0以及k大于链表长度时,输出空指针。

    代码:

    /*
    struct ListNode {
        int val;
        struct ListNode *next;
        ListNode(int x) :
                val(x), next(NULL) {
        }
    };*/
    class Solution {
    public:
        ListNode* FindKthToTail(ListNode* pListHead, unsigned int k) {
            stack<ListNode*> s;
            ListNode *cur = pListHead;
            if(pListHead==nullptr || k==0)
                return nullptr;
            while(cur!=nullptr)
            {
                s.push(cur);
                cur = cur->next;
            }
            int list_size = s.size();
            if(k>list_size)
                return nullptr;
            for(int i=0; i<k; i++)
            {
                cur = s.top();
                s.pop();
            }
            return cur;
        }
    };
  • 相关阅读:
    POI Excel解析
    mysql忘记root密码的解决方法
    注解实现AOP
    Java 集合类
    easyui-textbox 绑定事件
    MarqueeLabel 跑马灯
    Swift-2.14构造过程
    Swift-2.13继承
    Swift- 2.12下标脚本
    Swift-2.11方法
  • 原文地址:https://www.cnblogs.com/LJ-LJ/p/10587895.html
Copyright © 2011-2022 走看看