问题描述:定义一个函数,输入一个链表的头结点,反转该链表并输出翻转后链表的头结点;
问题分析:为避免反转时,当前节点的next指针指向前驱lastNode,而无法继续索引其后继nextNode,故在遍历过程中,注意要同时记录其前驱与后继;
同时注意鲁棒性:如输入链表头指针为null或者只有一个节点的情况;
代码:
/*public class ListNode {...
分类:
编程语言 时间:
2015-04-13 19:04:57
阅读次数:
153
这个题如果按照正常想法,一般是两边遍历,第一遍是计算链表的长度;然后确定倒数第n个节点的正序号,然后访问即可。好一点的方法是找一个指针p指向头结点后的n+1个节点,然后同时对头结点和p向后移动,如果p=Null了,这时head指针就恰好指向倒数第n+1个节点。这里有个问题,假如n恰好等于链表的长度,...
分类:
其他好文 时间:
2015-04-13 16:07:53
阅读次数:
176
#include
#include
typedef int ElemType;
typedef struct Node
{
ElemType data;
struct Node *next;
}LNode,*LinkList;
void InitList(LinkList &l);
void Create_head(LinkList &l);
void Create_rear(Lin...
分类:
其他好文 时间:
2015-04-12 14:48:41
阅读次数:
168
Josephus问题:设有n个人围坐在一个圆桌周围,现从第s个人开始报数,数到第m的人出列,然后从出列的下一个人重新开始报数,数到第m的人又出列。如此反复直到所有的人全部出列为止。 思路:构建一个没有头结点的循环链表,实现自己的删除函数,数到第几个结点就把这个结点从链表中删除,然后重新数。 ...
分类:
其他好文 时间:
2015-04-11 17:31:51
阅读次数:
149
定义一个方法(函数),实现输入一个链表的头结点,然后可以反转这个链表的方向,并输出反转之后的链表的头结点。typedef struct Node{ int data; Node *next;} Node, *List;链表类的问题,涉及到了很多指针的操作,需要严谨的分析,全面的分析问题之...
分类:
其他好文 时间:
2015-04-07 19:27:22
阅读次数:
115
Description建立一个长度为n的带头结点的单链表,在该表中寻找第i个结点,若找到,则输出“OK!”,否则输出“error!”。处理数据类型为整型。input第一行为链表的长度n; 第二行为链表中的数据元素; 第三行为要找的结点i。Output找到就输出“OK!”,没找到就输出“error!”...
分类:
编程语言 时间:
2015-04-07 19:24:07
阅读次数:
295
题目:输入一个链表的头结点,反转该链表,并返回反转后链表的头结点。链表结点定义如下:
struct ListNode
{
int m_nKey;
ListNode* m_pNext;
};
c语言实现
/*
File : rlink.c
Author :
Date : 2015/4/4
platform : windows7 x86_64
ve...
分类:
其他好文 时间:
2015-04-04 22:40:01
阅读次数:
260
root指向一棵二叉树的头结点,p和q分别指向该二叉树中任意两个结点的指针,编写算法,找到p和q的最近公共祖先结点r。
为了不失一般性,设p在q的左边。同时,为了编写方便,将以p和q所指结点的值代替p和q本身。根据【后续遍历最后访问根节点,在递归算法中,根是压在栈底的】,很容易想到,采用后序遍历非递归算法:栈中存放二叉树结点的指针。当访问到某结点时,栈中所有的元素都是该结点的祖先。设一个辅助栈,当没...
分类:
其他好文 时间:
2015-04-04 21:18:20
阅读次数:
150
定义n个节点离散分配;彼此通过指针相连;每个节点只有一个前驱节点,每个节点只有一个后续节点;首节点没有前驱节点,尾节点没有后续节点。专业术语:首节点:第一个有效节点尾节点:最后一个有效节点头结点:头结点的数据类型和首节点类型一样,第一个有效节点之前的那个节点,头结点并不存放有效数据[可以方便对链表的...
分类:
其他好文 时间:
2015-04-03 14:45:45
阅读次数:
122
Given a linked list, return the node where the cycle begins. If there is no cycle, return null.Follow up:
Can you solve it without using extra space?解题思路设链表长度为n,头结点与循环节点之间的长度为k。定义两个指针slow和fast,slow每次走...
分类:
其他好文 时间:
2015-03-18 14:07:38
阅读次数:
116