剑指15-输出链表中倒数第k个结点
来源:互联网 发布:string数组添加数据 编辑:程序博客网 时间:2024/05/18 11:05
题目描述
输入一个链表,输出该链表中倒数第k个结点。
思想:
n,n-1,………,k+1, k, k-1,……3,2,1
倒数第k个结点;
前面需要走n-k+1;
定义两个指针p1,p2,开始均指向首节点,先让p1移动到指向第k个节点,然后p1,p2同时移动,p1移动到第n个结点时,刚好移动了n-k+1,此时p2也移动n-k+1,则此时p2刚好指向倒数第k个结点。
/*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { }};*/class Solution {public: ListNode* FindKthToTail(ListNode* pListHead, unsigned int k) { if(pListHead==NULL||k==0) return NULL; //定义两个指针p1,p2,开始均指向首节点, ListNode*p1 = pListHead; ListNode*p2 = pListHead; //先让p1移动到指向第k个节点, for (int i = 1; i < k; i++) // i = 1开始的,自己画画就明白了 { if(p1->next!=NULL) p1=p1->next; else return NULL; } //然后p1,p2同时移动,p1移动到第n个结点时,刚好移动了n-k+1, //此时p2也移动n-k+1,则此时p2刚好指向倒数第k个结点。 while(p1->next!=NULL) { p1=p1->next; p2=p2->next; } return p2; }};
阅读全文
0 0
- 剑指15-输出链表中倒数第k个结点
- 输出链表中倒数第k个结点
- 输出链表中倒数第k个结点
- 输出链表中倒数第K个结点
- 输出链表中倒数第k个结点。
- 输出链表中倒数第k个结点。
- 剑指offer:输出该链表中倒数第k个结点
- 剑指-链表中倒数第k个结点
- 剑指Offer 15 输入一个链表,输出该链表中倒数第k个结点
- 输出单链表中倒数第k个结点
- 输出单链表中倒数第k个结点
- 输出单链表中倒数第k个结点
- 输出链表时倒数第K个结点
- 剑指offer-15:链表中倒数第k个结点
- 剑指offer 15 链表中倒数第k个结点
- 输出该链表中倒数第k个结点
- 13.输出该链表中倒数第k个结点
- 算法学习五---输出链表中倒数第k个结点
- 关于时间的jquery插件
- Java基础总结
- bzoj3109: [cqoi2013]新数独
- 如何判断一个基本类型的变量的类型呢?
- sqoop操作之HDFS导出到ORACLE
- 剑指15-输出链表中倒数第k个结点
- 那些年重温GreenDao时遇到的坑
- Codeforces492C【模拟】
- Java Bug 6260652 记录
- 【C++】改错题总结
- Jfinal学习日志第一章-快速上手(详细图解)
- nodejs res.end和res.send 区别
- 关于工作
- Luogu 1311(dp/模拟)(NOIP 2011)