基础大杂烩 -- 目录 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 1.输入并查找 方案:头插法,正向查找第m个元素. import java.util.Scanner;   public class Main {       /**      * @param args      */     public static void main(String[] args) {         Scanner in…
设计一个复杂度为n的算法找到单向链表倒数第m个元素.最后一个元素假定是倒数第0个. 提示:双指针查找 相对于双向链表来说,单向链表仅仅能从头到尾依次訪问链表的各个节点,所以假设要找链表的倒数第m个元素也仅仅能从头到尾进行查找,在查找的过程中,设定两个指针,当中p指针指向当前訪问的节点,q指针指向p之前的节点,且两者之间相距m个节点,这样,当p指针指向最后一个节点时,那q指针指向的元素就是倒数第m个元素,程序的处理步骤例如以下: #include <stdio.h> #include <m…
提示:设置一前一后两个指针,一个指针步长为1,另一个指针步长为n,当一个指针走到链表尾端时, 另一指针指向的元素即为链表倒数第n个元素. #include <stdio.h> #include <stdlib.h> #include "LinkList.h" void createLinkList(LNode **p) { setnull(p); /*建议链表并设置为空表*/ int n = 10, i; srand(time(0)); for (i = 1;…
class LNode { public LNode next; public int data; } /*找出倒数第k个元素,只遍历一遍*/ class Kk { private static LNode head = new LNode();; private static LNode node; private static LNode tail; private static LNode fast; private static LNode slow; private static 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) { if(head == null) return null; int length = 0; ListNode tempNode = head; L…
C#学习单向链表和接口 IList<T> 作者:乌龙哈里 时间:2015-11-04 平台:Window7 64bit,Visual Studio Community 2015 参考: MSDN 索引器(C# 编程指南) <数据结构(C#语言版)>下载 When to use IEnumerable, ICollection, IList and List 章节: 单向链表元素 定义单向链表操作接口 逐步实现单向链表 正文: 前面学习了 IEnumerable<T>.I…
描述 输入一个单向链表,输出该链表中倒数第k个结点,链表的倒数第0个结点为链表的尾指针. 链表结点定义如下: struct ListNode { int       m_nKey; ListNode* m_pNext; }; 详细描述: 接口说明 原型: ListNode* FindKthToTail(ListNode* pListHead, unsignedint k); 输入参数: ListNode* pListHead  单向链表 unsigned int k  倒数第k个结点 输出参数(…
输入一个单向链表,输出该链表中倒数第K个结点,具体实现如下: #include <iostream> using namespace std; struct LinkNode { public: LinkNode(int value = 0) : nValue(value){ pNext = NULL; } ~LinkNode() { pNext = NULL; } //private: friend class LinkList; int nValue; LinkNode *pNext; }…
第 13 题(链表):题目:输入一个单向链表,输出该链表中倒数第 k 个结点.链表的倒数第 0 个结点为链表的尾指针.链表结点定义如下: struct ListNode {int m_nKey;ListNode* m_pNext;}; 我的思路:先翻转链表,再从翻转后的链表的头向尾数k-1个,返回,再次翻转链表. 代码如下:注意这个思路非常差.差的原因是:如果只是用最原始的方法,先遍历一遍计数,再遍历一遍找倒数第k个,需要遍历两遍.但我的思路,翻转两次链表就要遍历两遍.还要在走k-1步找倒数第k…
题目: 输入一个单向链表,输出这个单向链表的倒数第k个节点 template<class T> class ListNode { public: T Data; ListNode<T> *pNext; ListNode<T> * FindKNode(ListNode<T> * pHead, int k); }; template<class T> ListNode<T> * ListNode<T>::FindKNode(L…