zoukankan      html  css  js  c++  java
  • 剑指offer-面试题22-链表中倒数第k个节点-双指针

    /*
    题目:
    	链表中倒数第k个节点
    */
    /*
    思路:
    	考虑边界条件:链表为空,k值超过链表长度。
    	双指针:
    		q指针指向第k个节点,p指针指向第1个节点。
    		q指针指向最后一个节点,p指针指向倒数第k个节点。
    */
    #include<iostream>
    #include<string.h>
    #include<algorithm>
    #include<cmath>
    #include<stdio.h>
    using namespace std;
    
    struct ListNode {
    	int val;
    	struct ListNode *next;
    	ListNode(int x) :
    			val(x), next(NULL) {
    	}
    };
    
    ListNode* FindKthToTail(ListNode* pListHead, unsigned int k) {
        if(pListHead == nullptr || k == 0) return nullptr;
    
        ListNode* kNode = pListHead;
        ListNode* pNode = pListHead;
        for(int i = 1; pNode != nullptr && i < k; i++){
            pNode = pNode->next;
        }
        if(pNode == nullptr) return nullptr;
        while(pNode->next != nullptr){
            kNode = kNode->next;
            pNode = pNode->next;
        }
        return kNode;
    
    }
    
    
    
    
    int main(){
       ListNode* node1 = new ListNode(1);
       ListNode* node2 = new ListNode(2);
       ListNode* node3 = new ListNode(3);
       node1->next = node2;
       node2->next = node3;
       node3->next = nullptr;
       cout<<FindKthToTail(node1,4)->val<<endl;
    }
    

       

  • 相关阅读:
    jQuery——能够编辑的表格
    最简单的Windows程序
    数据库分页查询
    Srvctl命令具体解释(10g)
    AT3912 Antennas on Tree
    使用GenericServlet实例
    Servlet接口、GenericServlet类、HttpServlet类
    Servlet简介
    MVC
    为JSP写的一套核心标签
  • 原文地址:https://www.cnblogs.com/buaaZhhx/p/11900970.html
Copyright © 2011-2022 走看看