zoukankan      html  css  js  c++  java
  • JZ14链表中倒数第k个结点

    description

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

    *sample*:
    input:
    {1,2,3,4,5},1
    output:
    {5}
    
    /**
     * struct ListNode {
     *	int val;
     *	struct ListNode *next;
     *	ListNode(int x) : val(x), next(nullptr) {}
     * };
     */
    class Solution {
    public:
        /**
         * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
         *
         * 
         * @param pHead ListNode类 
         * @param k int整型 
         * @return ListNode类
         */
        ListNode* FindKthToTail(ListNode* pHead, int k) {
            // write code here
            ListNode *p = pHead; //节点p指向链条头结点
            ListNode *q = pHead; //节点q指向头结点
            while( p!=NULL && k){  
                p = p->next;     //节点p指向距头结点k个距离的节点
                k--;
            }
            if(p==NULL){ //note:
                if(k==0) //如果p为空且距离头结点k则说明需要返回整个链表
                return pHead;//k>0说明k大于链表长度,不合理 返回空
                else
                    return NULL;
            }
    //两个指针相距k个结点,当p到达尾结点之后时,p指向倒数第k个元素
            while( p!=NULL ){
                q = q->next;
                p = p->next;
            }
            return q;
        }
    };
    
    流转星云
  • 相关阅读:
    JavaScript对象
    JavaScript基础
    MySQL总结
    前端的基础知识汇总
    反射,面对对象高阶
    django中的认证登陆与用户的创建
    django的cookie和session
    ajax的json包含于xml的区别
    django的分页系统
    django的orm简签
  • 原文地址:https://www.cnblogs.com/liuzhuan-xingyun/p/14500532.html
Copyright © 2011-2022 走看看