输入一个链表,输出该链表中倒数第k个结点。
来源:互联网 发布:淘宝快捷支付怎么开通 编辑:程序博客网 时间:2024/06/08 16:04
1,问题:
输入一个链表,输出该链表中倒数第k个结点。
2,想法都在代码里标注了:
/*struct ListNode {int val;struct ListNode *next;ListNode(int x) :val(x), next(NULL) {}};*/class Solution {public: ListNode* FindKthToTail(ListNode* pListHead, unsigned int k) { //思路1:先扫描链表,得到规模,再顺序扫描到指定位置 //缺点:扫描较多 /*if (pListHead == NULL || k <= 0) { return NULL; } int count = 0; ListNode* temp = pListHead; while (pListHead) { count++; pListHead = pListHead->next; } int m = count - k; //倒数第k个,是顺数第count - k +1个 if (m < 0) { return NULL; } else { while (m > 0) { temp = temp->next; m--; } return temp; } */ //思路2:倒数第k个位置,是顺数第n-k+1个位置 //设两个指针都指向头结点,那么第一个指针走k-1步到达顺数第k位置 //然后第二个指针和第一个指针一起走n-k步,即访问完链表,就到达了 //n-k+1位置,即倒数第k位置 if(pListHead == NULL || k <= 0) { return NULL; } ListNode* temp1 = pListHead; ListNode* temp2 = pListHead; //下边for循环的意思: //若i满足for循环条件,表示还要往下走 //但是temp1->next如果等于空,就说明下边没有节点了, //说明k比链表长度大,返回空 //否则就往下走到顺数k位置 for (int i =1; i < k; i++) { if (temp1->next == NULL) { return NULL; } else temp1 = temp1->next; } //上面若没有return,即走到了顺数k位置 //那么我再用下边这个while循环,走到 //倒数k位置,即顺数n-k+1位置即可 while (temp1->next) { temp2 = temp2->next; temp1 = temp1->next; } return temp2; }};
1 0
- 链表中倒数第k个结点 输入一个链表,输出该链表中倒数第k个结点。
- 13、输入一个单向链表,输出该链表中倒数第k个结点
- 输入一个单向链表,输出该链表中倒数第k个结点
- 输入一个单向链表,输出该链表中倒数第k个结点
- 输入一个单向链表,输出该链表中倒数第k个结点
- 输入一个单向链表,输出该链表中倒数第k个结点
- 输入一个单向链表,输出该链表中倒数第K个结点
- 13 输入一个单向链表,输出该链表中倒数第k个结点
- 输入一个单向链表,输出该链表中倒数第k个结点
- 输入一个单向链表,输出该链表中倒数第k个结点
- 输入一个单向链表,输出该链表中倒数第K个结点
- 输入一个链表,输出该链表中倒数第k个结点。
- 面试题15:输入一个链表,输出该链表中倒数第k个结点。
- 输入一个单向链表,输出该链表中倒数第 k 个结点
- 剑指offer:输入一个链表,输出该链表中倒数第k个结点。
- 面试题15、输入一个链表,输出该链表中倒数第k个结点。
- 输入一个链表,输出该链表中倒数第k个结点。
- 输入一个链表,输出该链表中倒数第k个结点
- iOS 导出 ipa 包时 三个选项的意思
- AT89S52串口测试程序
- 分库
- javascript心得随记
- 此博客主要用来记录自己从他人学习到的东西
- 输入一个链表,输出该链表中倒数第k个结点。
- poj 3111 K Best
- [LeetCode]Generalized Abbreviation
- android 中遥控器键值的添加和修改
- Android异常java.lang.IllegalStateException: The specified child already has a parent.
- 《从零开始学Swift》学习笔记(Day 63)——Cocoa Touch设计模式及应用之单例模式
- ES2015 - Array (4)
- mysql审计插件(运维不在背锅)
- C语言单链表——之常见面试题目2