题目:输入一个单向链表,输出该链表中倒数第k个结点。链表的倒数第0个结点为链表的尾指针。
链表结点定义如下:
struct ListNode
{
int m_nKey;
ListNode* m_pNext;
};
C# codes as below:
using System;
using System.Collections.Generic;
namespace ConsoleApp
{
class RunClass
{
static void Main()
{
Node<int> i1 = new Node<int>() { Value = 4 };
Node<int> i2 = new Node<int>() { Value = 8, Next = i1 };
Node<int> i3 = new Node<int>() { Value = 12, Next = i2 };
Node<int> i4 = new Node<int>() { Value = 16, Next = i3 };
Link<int> link = new Link<int>() { Start = i4 };
Node<int> i = new Helper().GetNode<int>(link, 1);
Console.WriteLine(i.Value);
Console.ReadLine();
}
}
class Helper
{
public Node<T> GetNode<T>(Link<T> link, int index)
{
Node<T> current = link.Start;
Stack<Node<T>> stack = new Stack<Node<T>>();
stack.Push(current);
while (current.Next != null)
{
current = current.Next;
stack.Push(current);
}
if (stack.Count < index + 1 || index < 0)
return null;
else
{
for (int i = 0; i < index; i++)
{
stack.Pop();
}
return stack.Pop();
}
}
}
class Link<T>
{
public Node<T> Start { get; set; }
}
class Node<T>
{
public Node<T> Next { get; set; }
public T Value { get; set; }
}
}
分享到:
相关推荐
题:输入一个链表,输出该链表中倒数第k个结点。 解题思路一:为了实现只遍历链表一次就能找到倒数第k个节点,我们可以定义两个指针。让第一个指针先向前走k-1步,第二个指针保持不动;从第k步开始,第二个指针也...
查找链表中倒数第K个节点,源代码验证通过,两种查找方法。
cpp代码-输入一个链表,输出该链表中倒数第k个结点。
题目:输入一个单向链表,输出该链表中倒数第k个结点。链表的倒数第0个结点为链表的尾指针。 分析:使用两个指针,low,fast,先把fast的指针指向第k个元素,然后low和fast同时向后遍历,当fast遍历到结尾时,low...
运行本文所述实例可实现输入一个单向链表,输出该链表中倒数第k个节点。 具体实现方法如下: /* * Copyright (c) 2011 alexingcool. All Rights Reserved. */ #include using namespace std; int array[] = {5, 7,...
给你一个链表,节点有值域,计数器(表示值出现的次数,初始化为1),指针域,节点的值有重复的,去除重复的值,修改相应节点的计数器。这样做的好处就是节省的很多存储空间。 对即将参加华为机考的同学有非常大的帮助...
链表功能的一个扩展延伸,查找倒数第K个元素,是某年考研题
已知head指向一个带头结点的单向链表, 链表中每个结点包含数据域(data)和指针域(next)。 请编写函数实现如图所示链表逆置
删除链表中倒数第N个结点后,返回结果链表的首结点
使用给定数据结构,实现带头结点的单向链表的创建、删除链表、插入结点等操作,每个学生的学号互不相同,学号不同而姓名相同则为不同的学生,每个学生的学号在合并后的链表中不重复,如果出现重复,则删除年龄较小...
题目输入一个链表,输出该链表中倒数第k个结点思路将输入链表赋给两个链表;然后和另外一个链表一起走到链表尾,另外一个链表即在倒数第k个结点。if head ==
NULL 博文链接:https://128kj.iteye.com/blog/1748487
将一个单向链表反向连接
输入一个链表,输出该链表中倒数第k个结点 解题思路 本题的思路和之前看矩形那一题有相似之处,就是我们优先考虑边界情况,比如本题,我们需要查找链表中的倒数第K个节点,那么想象此时身处链表最后的位置,我想要...
1.随机产生或键盘输入一组元素,建立一个带头结点的单向链表(无序)。 2.遍历单向链表。 3.把单向链表中元素逆置(不允许申请新的结点空间)。 4.在单向链表中删除所有的偶数元素结点。 5.编写在非递减...
单向链表架构代码,适合学习链表的学生学习!内附排序函数,打印函数,链表尾添项函数,删除函数。
只遍历一次单向链表,找到倒数第N个结点,
C#单向链表C#单向链表C#单向链表C#单向链表C#单向链表C#单向链表C#单向链表C#单向链表C#单向链表C#单向链表
定义、实现并测试一个双向链表结点类DNode。 链表结点类中包含私有数据成员为两个整数x,y以及左结点指针left及右结点指针right。 包含的函数成员包括: (a)对结点的数据成员赋值setDNodeValues(int,int,DNode* ...