首页 > 代码库 > 寻找倒数第K个结点
寻找倒数第K个结点
#include<stdio.h>#include<iostream>using namespace std;/*** 找到链表中的倒数第k个节点*///定义结构体typedef struct Node{ int val; Node* next;} Node;//创建链表Node* createNode(){ int in; Node* n; cin >> in; if(in == 1000){ n = NULL; }else{ n = new Node(); n->val = in; n->next = createNode(); } return n;}//寻找倒数第k个节点Node* findLastKth(Node* head,int k){ if(head == NULL || k<0) return NULL; Node* pBefore = head; Node* pAfter = head; int count = 0; while(count < k-1){ count++; if(pAfter->next == NULL){ return NULL; } pAfter = pAfter->next; } while(pAfter->next != NULL){ pBefore = pBefore->next; pAfter = pAfter->next; } return pBefore;}int main(){ Node* n1 = createNode(); cout << "++++++++++++++链表为+++++++++++++++++"<< endl; Node* cur = n1; while(cur!=NULL){ cout<<cur->val<<endl; cur = cur->next; } int k = 3; Node* LsThK = findLastKth(n1,k); cout << "++++++++++++++倒数第k个节点为+++++++++++++++++"<< endl; cout << LsThK->val <<endl; return 0;}
寻找倒数第K个结点
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。