链表中倒数第k个结点
来源:互联网 发布:java中的数据结构 编辑:程序博客网 时间:2024/05/16 04:22
1.问题描述
输入一个链表,输出该链表中倒数第k个结点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾结点是倒数第一个结点。例如一个链表有6个结点,从头开始它们的值依次是1,2,3,4,5,6。这个链表的倒数第3个结点是值为4的结点。(来自《剑指offer》)
2.分析
倒数第k个结点我们可以声明2个指针让第一个指针先走k-1步,那么这俩个指针相隔距离为k。待第一个指针指向链表末尾时,第二个指针即为倒数第k个结点。但是需要注意一下几个问题,即 k 为 0 和 假如链表 结点不够k-1个。
3.代码
#include <stdio.h>#include <stdlib.h>typedef struct node{ int data; struct node* next; }ListNode;ListNode* FindKthToTail(ListNode* head,unsigned int k){ if(head == NULL || k == 0) { return NULL; } ListNode *ahead = head; for (int i = 0; i < k-1; i++) { if (ahead->next) { ahead = ahead->next; } else { return NULL; } } ListNode *behind = head; while (ahead->next) { ahead = ahead->next; behind = behind->next; } return behind; }
0 0
- 查找链表中倒数第k个结点
- 查找链表中倒数第k个结点
- 查找链表中倒数第k个结点
- 查找链表中倒数第k个结点
- 查找链表中倒数第 k个结点
- 查找链表中倒数第k个结点
- 查找链表中倒数第k个结点
- 输出链表中倒数第k个结点
- 查找链表中倒数第k个结点
- 查找链表中倒数第k个结点
- 链表中倒数第k个结点
- 链表中倒数第k个结点
- 查找链表中倒数第k 个结点
- 链表中倒数第k个结点
- 查找链表中倒数第k个结点
- 链表中倒数第k个结点
- 链表中倒数第k个结点[数据结构]
- 链表中倒数第k个结点
- 图解TCP/IP 笔记
- Bat基本语法
- IStyleGallery 和IstyleGalleryItem以及IStyleGalleryStorage接口的详解
- java基础:反射字段
- 返回 list<> 集合异常
- 链表中倒数第k个结点
- ubuntu tftp服务器
- Log4J入门教程(一) 入门例程
- 【SDOI2012】【BZOJ2705】Longge的问题
- iOS扫码Zbar静态库支持arm64和arms7s的静态库
- poj2763 Housewife Wind 树链剖分
- 关于Android中AlertDialog的使用问题:点击AlertDialog外部不消失的代码操作
- C++何时需要自定义析构函数呢?
- windbg远程调试方法