166 链表倒数第n个结点】的更多相关文章

原题网址:https://www.lintcode.com/problem/nth-to-last-node-in-list/description 描述 找到单链表倒数第n个节点,保证链表中节点的最少数量为n. 您在真实的面试中是否遇到过这个题?  是 样例 给出链表 3->2->1->5->null和n = 2,返回倒数第二个节点的值1. 标签 链表 Cracking The Coding Interview   思路:首先应该清楚,若链表一共有t个结点,则正数第n个结点即倒数…
问题:求单链表倒数第m个结点,要求不准求链表的长度,也不许对链表进行逆转 解:设置两个指针p和q,p.q指向第一个结点.让p先移动到链表的第m个结点,然后p和q同时向后移动,直到p首先到达尾结点.此时,q结点落后p (m-1)个结点,q所指向的结点就是单链表的倒数第m个结点. 算法实现: linkNode *searchLinkM(linkNode *link,int m) { linkNode *p=link->next; ) { ;i<m;i++) { p=p->next; if(p…
估计这个问题在面试中被问烂了. 思路是先找到正数的第K个结点的指针pT,然后和指向头结点的指针pN一起向后移动,直到第K个指针指向NULL,此时pN指向的结点即倒数第K个结点. 如图: #include <stdio.h> #include <time.h> #include <stdlib.h> typedef struct Node { int data; Node* next; }Node, *List; List createList(int num) //随机…
输入一个链表,输出该链表中倒数第k个结点.第一个指针走(k-1)步,到达第k个节点,两个指针同时往后移动,当第一个结点到达末尾的时候,第二个结点所在位置就是倒数第k个节点了 <?php class Node{ public $data; public $next; } //创建一个链表 $linkList=new Node(); $linkList->next=null; $temp=$linkList; for($i=1;$i<=10;$i++){ $node=new Node();…
本文算法使用python3实现 1 题目描述:   输入一个链表,输出该链表中倒数第k个结点.   时间限制:1s:空间限制:32768K 2 思路描述:   方法一:当链表长度为 $ n $ 时,输出链表倒数第 $ k $ 个节点,即输出链表正数第 $ n-k $ 个节点.需先遍历链表计算链表长度,再从头至尾查找第 $ n-k $ 个节点,并输出.   方法二:可以用两个指针同时指向链表头结点,第一个指针先遍历到第k个结点,此时第二个指针指向头结点,两个指针的距离为k-1.从此时起,同时后移第…
----------------------------------- 最开始的想法是先计算出链表的长度length,然后再从头走 length-n 步即是需要的位置了. AC代码: /** * Definition for ListNode. * public class ListNode { * int val; * ListNode next; * ListNode(int val) { * this.val = val; * this.next = null; * } * } */ pu…
/************************************************************************* > File Name: 13_KthNodeToTail.cpp > Author: Juntaran > Mail: JuntaranMail@gmail.com > Created Time: 2016年08月30日 星期二 15时32分25秒 ******************************************…
答案,注意,一种是递归,另一种是迭代,那么巧妙利用双指针: 迭代: public static LinkedListNode nthToLast(LinkedListNode head, int n) { LinkedListNode p1 = head; LinkedListNode p2 = head; if (n <= 0) return null; // Move p2 n nodes into the list. Keep n1 in the same position. for (i…
Given a linked list, remove the n-th node from the end of list and return its head. Example: Given linked list: 1->2->3->4->5, and n = 2. After removing the second node from the end, the linked list becomes 1->2->3->5. Note: Given n w…
#include<iostream>using namespace std;#include<malloc.h>#include<stdio.h>typedef int Elem;typedef struct AA{ Elem data; struct AA *next;}A;void Create(A *&L,Elem a[],int n){ A *r,*s; L=(A *)malloc(sizeof(A)); r=L; for(int i=0;i<n;…