链表中倒数第k个结点
2017-08-21 10:04
253 查看
题目描述
输入一个链表,输出该链表中倒数第k个结点。
解题思路
思路1
假设从1开始计数,倒数第k个节点,即为正数n-k+1个节点,可以先统计链表的长度,再遍历查找第n-k+1个节点,需要遍历两次链表。
思路2
定义两个指针,分别指向头结点,第一个指针走k步之后,第二个指针开始移动,当第一个指针达到链表末尾时,第二个节点指向的即使倒数第k个节点。
输入一个链表,输出该链表中倒数第k个结点。
解题思路
思路1
假设从1开始计数,倒数第k个节点,即为正数n-k+1个节点,可以先统计链表的长度,再遍历查找第n-k+1个节点,需要遍历两次链表。
思路2
定义两个指针,分别指向头结点,第一个指针走k步之后,第二个指针开始移动,当第一个指针达到链表末尾时,第二个节点指向的即使倒数第k个节点。
class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; } } public class lianbiaozhongdaoshudikgejiedian { public ListNode FindKthToTail(ListNode head, int k) { if (head == null || k <= 0) return null; int count = 0; ListNode pHead = head; ListNode plListNode = head; while (pHead.next != null) { pHead = pHead.next; count++; if (count >= k) { plListNode = plListNode.next; } } if (count < k - 1) return null; return plListNode; } }
相关文章推荐
- 链表中倒数第k个结点
- 求链表中倒数第k个结点
- 面试题17:链表中倒数第k个结点(offer)
- 剑指Offer(Java版):链表中倒数第K个结点
- 剑指offer 之 输出链表的倒数第K个结点
- 【链表2】链表中倒数第k个结点
- 剑指offer:链表中倒数第k个结点(java)
- 剑指offer:链表中倒数第k个结点
- 链表中倒数第k个结点
- 13 输入一个单向链表,输出该链表中倒数第k个结点
- 程序员面试题精选100题(09)-链表中倒数第k个结点[数据结构]
- 链表中倒数第k个结点
- 输出单链表中倒数第k个结点(Java版)
- 数据结构练习(08)链表中倒数第k个结点
- 面试题15:链表中倒数第k个结点
- 链表中倒数第k个结点
- 每天一道算法题7 查找链表中倒数第k个结点 ; 输入一个单向链表。如果该链表的结点数为奇数,输出中间的结点;如果链表结点数为偶数,输出中间两个结点前面的一个
- 链表中倒数第k个结点
- 【剑指offer】面试题15:链表中倒数第k个结点
- 剑指offer:查找链表中倒数第k个结点