剑指offer--输入一个链表,输出该链表中倒数第k个结点。
来源:互联网 发布:gitlab windows 编辑:程序博客网 时间:2024/05/11 13:06
//求解思路:首先创建前后两个指针同时指向头结点,前指针移动到k-1,就是第k个节点,此时前后两个指针一起移动到前指针移动到链表末尾,此时后指针的位置就是倒数第k个节点的位置
//让第一个指针指向 k-1 第二个指针指向0 二者一起移动,当移动到终点此时便有第二个指针指向k返回该值即可
/*public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; }}*/public class Solution { public ListNode FindKthToTail(ListNode head,int k) { if(head == null || k <= 0){ return null; } ListNode pre = head; ListNode in = head; for(int i = 0; i < k; i++){ if(pre.next != null){ pre = pre.next; } else{ return null; } } while(pre.next != null && in.next !=null){ pre = pre.next; in = in.next; } return in; }}
还有一种方法差不多写法思路是一样的
/*public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; }}*/public class Solution { public ListNode FindKthToTail(ListNode head,int k) { //求解思路:让第一个指针指向 k-1 第二个指针指向0 二者一起移动,当移动到终点此时便有第二个指针指向k返回该值即可 if(head == null || k <= 0){ return null; } ListNode pre = head; ListNode in = head; for(int i = 1; i < k; i++){ if(pre.next != null){ pre = pre.next; }else{ return null; } } while(pre.next != null && in.next != null){ pre = pre.next; in = in.next; } return in; }}
阅读全文
0 0
- 剑指offer:输入一个链表,输出该链表中倒数第k个结点。
- java实现输入一个链表,输出该链表中倒数第k个结点。--《剑指offer》
- 剑指Offer 15 输入一个链表,输出该链表中倒数第k个结点
- 剑指offer:输入一个链表,输出该链表中倒数第k个结点。
- 剑指offer--输入一个链表,输出该链表中倒数第k个结点。
- 链表中倒数第k个结点 输入一个链表,输出该链表中倒数第k个结点。
- 剑指offer:输出该链表中倒数第k个结点
- 13、输入一个单向链表,输出该链表中倒数第k个结点
- 输入一个单向链表,输出该链表中倒数第k个结点
- 输入一个单向链表,输出该链表中倒数第k个结点
- 输入一个单向链表,输出该链表中倒数第k个结点
- 输入一个单向链表,输出该链表中倒数第k个结点
- 输入一个单向链表,输出该链表中倒数第K个结点
- 13 输入一个单向链表,输出该链表中倒数第k个结点
- 输入一个单向链表,输出该链表中倒数第k个结点
- 输入一个单向链表,输出该链表中倒数第k个结点
- 输入一个单向链表,输出该链表中倒数第K个结点
- 输入一个链表,输出该链表中倒数第k个结点。
- 求任意一个数二进制中1的个数
- 负载均衡常用算法
- 定时任务--Timer
- [noip模拟题]仔排
- 从计算方式的角度,看看互联网到底对实体商业做了什么?
- 剑指offer--输入一个链表,输出该链表中倒数第k个结点。
- Mastering ROS for Robotics Programming
- 打印二叉树
- poj3061:Subsequence
- windows中mysql备份与恢复
- 超级详细----ESP8266(1)
- mysql数据类型长度问题
- 做题收获(2017-10-5)
- const char* a 和 char* const a 简单辨别