输出单链表倒数第K个结点值】的更多相关文章

#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;…
估计这个问题在面试中被问烂了. 思路是先找到正数的第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.从此时起,同时后移第…
思路1:定义两个指针变量p和q,初始时均指向头节点的下一个节点(链表的第一个节点),p指针沿链表移动: 当p指针移动到第k个节点时,q指针开始与p指针同步移动, 当p指针移动到最后一个节点时,q指针所指节点就是倒数第k个节点. 思路2:利用栈实现,遍历链表依次入栈,然后出k次栈就找到那个节点了. 1.定义栈结构typedef struct{ int length; ]; }Stack; void push(Stack &s,int v){ if(s.length <= 50){ s.valu…
/************************************************************************* > 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…
#!/usr/bin/env python class Node(object): def __init__(self,elem,next_=None): self.elem = elem self.next = next_ class Simple_List(object): def __init__(self): self.head = None def is_empty(self): return self.head == None def prepend(self,elem): self…
输入一个链表,输出该链表中倒数第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) { ListNode p = head; ListNode pre = head; int a =k; int count…
题目描述 输入一个链表,输出该链表中倒数第k个结点.     思路: 法1:设置2个指针p,q.p先移动k次,然后pq同时后移,p到链表尾尾的时候,q指向倒数第k个节点. 注意://需要考虑k=0,以及List为空的情况 法2:利用栈,先全部压栈,pop k次,得到倒数第k个节点   AC代码: /* struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { } };*/ cl…