面试题22:链表中倒数第k个节点
时间:2019-11-19
本文章向大家介绍面试题22:链表中倒数第k个节点,主要包括面试题22:链表中倒数第k个节点使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
思路1:
先遍历链表一次,统计出链表节点个数n,
然后,倒数第k个节点是,n-k+1。
缺点:该方法需要遍历两次列表。
思路2:
定义两个指针,第一个指针向前遍历k-1步,第二个指针保持不动;
从第k步开始,第二个指针从链表头指针开始遍历,当第一个指针到底链表的尾端,第二个指针正好指向倒数第k个节点。
注意点:
1.pListHead为空指针
2.pListHead的链表节点数少于k
3.输入参数为0,由于k是一个无符号整数,k-1会得到0xFFFFFFFF,循环次数超过预计
1 /* 2 struct ListNode { 3 int val; 4 struct ListNode *next; 5 ListNode(int x) : 6 val(x), next(NULL) { 7 } 8 };*/ 9 class Solution { 10 public: 11 ListNode* FindKthToTail(ListNode* pListHead, unsigned int k) { 12 if(pListHead == nullptr || k == 0) 13 return nullptr; 14 ListNode * pAhead = pListHead; 15 ListNode * pBehind = nullptr; 16 17 for(unsigned int i = 0; i < k-1; i++) 18 { 19 if(pAhead->next != nullptr) 20 pAhead = pAhead->next; 21 else 22 { 23 return nullptr; 24 } 25 } 26 27 pBehind = pListHead; 28 while(pAhead->next != nullptr) 29 { 30 pAhead = pAhead->next; 31 pBehind = pBehind->next; 32 } 33 return pBehind; 34 } 35 };
原文地址:https://www.cnblogs.com/zmm1996/p/11891977.html
- 梯度下降法快速教程 | 第二章:冲量(momentum)的原理与Python实现
- Java 序列化与反序列化
- Percona Toolkit 常用工具使用介绍
- 深入浅出Redis-redis哨兵集群
- Spring-Blog:个人博客(一)-Mybatis 读写分离
- Spring-boot:5分钟整合Dubbo构建分布式服务
- MYSQL5.6优化器的一个新特性MMR
- Mysql聚集索引和非聚集索引
- Spring-Boot:6分钟掌握SpringBoot开发
- Zookeeper-5分钟快速掌握分布式应用程序协调服
- Mysql索引长度计算
- Spring-Boot:Spring Cloud构建微服务架构
- Python-WXPY实现微信监控报警
- MySQL InnoDB Lock(一)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法