博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
链表中倒数第k个结点
阅读量:6732 次
发布时间:2019-06-25

本文共 1931 字,大约阅读时间需要 6 分钟。

问题

从1开始计数,计算倒数第k个结点的指针。例如:

思路

整着数到第k,然后前后一块往后走,前边的走到头,后边的极为倒数第k个结点,图示

注意

  • 传入空指针
  • k大于结点的个数

代码

ListNode* LastNNode(ListNode *root, int n){    if (root == NULL || n <=0)        return NULL;    ListNode *cur = root;    ListNode *pre = root;    int cnt = 0;    while (pre != NULL)    {        cnt++;        if (cnt == n)            break;        pre = pre->next;    }    if (cnt < n)    {        return NULL;    }    else    {        cur = root;        while (pre->next != NULL)        {            pre = pre->next;            cur = cur->next;        }        return cur;    }}

执行

#include 
using namespace std;struct ListNode{ int val; ListNode *next; ListNode(int v) : val(v), next(NULL) {}};ListNode* LastNNode(ListNode *root, int n){ if (root == NULL || n <=0) return NULL; ListNode *cur = root; ListNode *pre = root; int cnt = 0; while (pre != NULL) { cnt++; if (cnt == n) break; pre = pre->next; } if (cnt < n) { return NULL; } else { cur = root; while (pre->next != NULL) { pre = pre->next; cur = cur->next; } return cur; }}ListNode* createList(){ ListNode *root = new ListNode(0); ListNode *p1 = new ListNode(1); ListNode *p2 = new ListNode(2); ListNode *p3 = new ListNode(3); root->next = p1; p1->next = p2; p2->next = p3; return root;}void deleteList(ListNode *root){ ListNode *p = root; while(root != NULL) { p = root->next; delete(root); root = p; }}void tranverse(ListNode* root){ while(root != NULL) { cout << root->val << " "; root = root->next; } cout << endl;}int main(){ ListNode *root = createList(); root = NULL; ListNode *p = LastNNode(root, 1); cout << p << endl; if (p != NULL) cout << p->val << endl; deleteList(root);}
View Code

 

推荐

转载地址:http://qsfqo.baihongyu.com/

你可能感兴趣的文章
Type Conversion
查看>>
GCD Block
查看>>
我的操作系统复习——进程(上)
查看>>
html 复制 有时不显示样式
查看>>
怎么写测试策略
查看>>
2018-2019-1 20165231 《信息安全系统设计基础》第四周学习总结
查看>>
jar包的一天
查看>>
python random模块
查看>>
发布使用了stage3D功能的Air for Android项目到手机上
查看>>
15. 利用ajax jquery 上传文件
查看>>
4.类与结构
查看>>
Java Foreach语句使用总结
查看>>
asp.net html中table数据转换为数组传给后台
查看>>
POJ 1584 A Round Peg in a Ground Hole
查看>>
PAT (Advanced Level) 1115. Counting Nodes in a BST (30)
查看>>
[记录]map容器的删除
查看>>
使用innobackupex基于从库搭建级联从库及一两从
查看>>
jQuery的61种选择器
查看>>
UGUI——重写Image类实现进度条
查看>>
ASP.NET:性能与缓存 转帖 张逸老师(http://www.cnblogs.com/wayfarer/articles/48347.aspx)...
查看>>