AcWing 33. 链表中倒数第k个节点】的更多相关文章

习题地址 https://www.acwing.com/solution/acwing/content/2997/ 题目描述输入一个链表,输出该链表中倒数第k个结点. 注意: k >= 0;如果k大于链表长度,则返回 NULL; 样例 输入:链表:->->->-> ,k= 输出: 算法1除开大佬说的遍历链表两次 也可以开一个数组记录链表的元素地址 然后返回倒数第K个 C++ 代码 /** * Definition for singly-linked list. * struc…
题目:输入一个链表,输出这个链表中倒数第K个节点.(代码的鲁棒性) 思路:用两个指针p1和p2,都指向头节点,开始的时候,p2不动,p1移动k-1次,指向第k个节点.此时,如果p1->next!=null,则同时移动P1和p2.直到p1指向最后一个节点.此时,P2指向倒数第k个节点. C++代码: #include<iostream> using namespace std; struct ListNode { int m_nValue; ListNode* m_pNext; }; Li…
问题描述: 找出链表中倒数第K个节点 思路分析: 用两个指针,一前一后,保持k个距离,前面的指针移动到末尾,后面的指针就刚好直到第k个节点, 要考虑到k为0,倒数第k个节点不存在的情况. 参考代码: ListNode* FindKthToTail(ListNode * pHead,unsigned int k){    if (NULL == pHead || k == 0)    {        return NULL;    } ListNode *pAhead = pHead; for…
链表中倒数第k个节点 题目描述 输入一个链表,输出该链表中倒数第k个结点. 思路:two-pointers思想,因为是单链表,没法得prevous点,直接遍历得到链表长度再重新遍历效率很低. 采用双指针思想,使得当一个指针处于链表末尾时,另一个指针恰好在倒数第k个节点. public ListNode FindKthToTail(ListNode head, int k) { if(head==null||k==0) return null; ListNode tmp = head; ListN…
本题来自<剑指offer> 链表中倒数第k个节点 题目: 输入一个链表,输出该链表中倒数第k个结点. 思路: 倒数第k个节点,而且只能访问一遍链表,定义两个节点,两者之间相差k个距离,遍历到尾节点,则便找到了倒数k节点了. 考虑代码的鲁棒性.代码的鲁棒是指程序能够判断输入是否合乎规范要求,并对不合理的输入给予合理的处理. 1.如果传入的根节点是空:直接返回空 2.传入的数据少于k个:在遍历前k个节点时候,如果发现为空,则直接返回空 3.传入的k为小于或者等于0:直接返回空 4.正常的数据,fi…
题目描述 输入一个链表,输出该链表中倒数第k个节点. 题目分析 用两个指针来跑,两个指针中间相距k-1个节点,第一个指针先跑,跑到了第k个节点时,第二个指针则是第一个节点. 这时候两个一起跑.当第一个跑到了最后一个节点时,这时候第一个指针则是倒数第k个节点. 代码 /* function ListNode(x){ this.val = x; this.next = null; }*/ function FindKthToTail(head, k) { if (head === null || k…
/** * 面试题15:链表中倒数第K个节点 * 输入一个链表,输出该链表中倒数第k个结点. */ public class _15_linked_K { public static void main(String[] args){ Solution15 solution15 = new Solution15(); ListNode15 l5 = new ListNode15(1); l5.next=new ListNode15(2); l5.next.next=new ListNode15(…
php实现求链表中倒数第k个节点 一.总结 $head = $head->next; //1.将$head节点next域里面的记录的那个地址值($head节点的下一个节点的地址)给$head,$head本来也就是记录地址的 二.php实现求链表中倒数第k个节点 题目描述: 输入一个链表,输出该链表中倒数第k个结点. 三.代码 <?php /*class ListNode{ var $val; var $next = NULL; function __construct($x){ $this-&…
面试题 22. 链表中倒数第 K 个节点…
///////////////////////////////////////////////////////////////////////////////////// // 5. 题目15 链表中倒数第K个节点 //时间复杂度:O(n),空间复杂度O(n) ListNode<int>* KthNodeFromEnd(ListNode<int>* pNode, int k) { ) { return NULL; } ListNode<int>* p = pNode;…