求助。正想跳槽 去面试遇到的题目
时间:2010-06-22
来源:互联网
作者: 输给钱的男人 发布时间: 2010-06-22


作者: 输给钱的男人 发布时间: 2010-06-22
goole “倒置 单向链表”
作者: c/unix 发布时间: 2010-06-22
作者: 输给钱的男人 发布时间: 2010-06-22
作者: 狗气球 发布时间: 2010-06-22
作者: k8king 发布时间: 2010-06-22
作者: pandaiam 发布时间: 2010-06-22
一个指针解决问题。
作者: zhaohongjian000 发布时间: 2010-06-22
一个指针解决问题。
zhaohongjian000 发表于 2010-06-22 15:38
不允许用新节点,允许用指针?
作者: asdmonster 发布时间: 2010-06-22
asdmonster 发表于 2010-06-22 15:52
不允许创建新节点是为了防止那种傻瓜式的倒置:每访问一个节点,就创建一个节点,然后将这个节点的next置上上个节点的地址,遍历完原先的节点后,就生成了一条新的倒置的链表啊。
题目的原意应该是这样,没你想的复杂,所以用一个指针,递归置换就ok。
作者: doofy 发布时间: 2010-06-22
- include <stdio.h>
- #include <stdlib.h>
-
- struct node_t {
- struct node_t *next;
- int index;
- };
-
- struct node_t *malloc_node(int index)
- {
- struct node_t *pnode = malloc(sizeof(struct node_t));
-
- pnode->index = index;
-
- return pnode;
- }
-
- struct node_t *init_node(int num)
- {
- int i = 0;
- struct node_t *node_head = malloc(sizeof(struct node_t));
- struct node_t *pnode;
- struct node_t *pre_node = node_head;
-
- for(; i < num; i++) {
- pnode = malloc_node(i);
- pre_node->next = pnode;
- pre_node = pnode;
- }
-
- pnode->next = NULL;
-
- return node_head;
- }
-
- void dump_node_list(struct node_t *phead)
- {
- struct node_t *p = phead;
-
- while(p->next) {
- p = p->next;
- printf("index: %d\n", p->index);
- }
- }
-
- struct node_t *convert_node(struct node_t *pre_node, struct node_t *pnode)
- {
- struct node_t *tmp = pnode->next;
- struct node_t *last = NULL;
-
- if(pnode->next) {
- last = convert_node(pnode, pnode->next);
- tmp->next = pnode;
- pnode->next = pre_node;
- } else {
- pnode->next = pre_node;
- last = pnode;
- }
- return last;
- }
-
- void convert(struct node_t *phead)
- {
- struct node_t *last = NULL;
-
- last = convert_node(NULL, phead->next);
- phead->next = last;
- }
-
- int main()
- {
- struct node_t *phead = init_node(10);
-
- dump_node_list(phead);
-
- convert(phead);
-
- dump_node_list(phead);
-
- return 0;
- }
作者: doofy 发布时间: 2010-06-22
- #include <stdio.h>
- struct node
- {
- struct node *next;
- int data;
- };
- int main()
- {
- int a[6];
- int i;
- struct node *node;
- struct node *root;
- struct node *tmp;
- void *b;
- void *c;
- void *d;
- int flag;
- flag=0;
- b=NULL;
- c=NULL;
- tmp = NULL;
- root=NULL;
- node=NULL;
- for ( i=0;i<6;i++ )
- {
- a[i]=i;
- }
- /*创建六个节点开始*/
- for ( i=0;i<6;i++ )
- {
- node=malloc(sizeof(struct node));
- if ( 0==i )
- {
- root=node;
- node->next=NULL;
- tmp=root;
- node->data=a[i];
- continue;
- }
- node->next=NULL;
- node->data=a[i];
- ((struct node *)tmp)->next = node;
- node = NULL;
- tmp=tmp->next;
- }
- /*创建六个节点结束*/
- tmp=root;
- i=0;
- /*打印节点*/
- while ( NULL!=tmp )
- {
- fprintf(stderr,"%d ",tmp->data);
- tmp=tmp->next;
- i++;
- }
- i=i-3;
- fprintf(stderr,"\n");
- /*倒置节点开始*/
- b=root->next->next;
- root->next->next=root;
- c=root->next;
- root->next->next->next=NULL;
- root=b;
- while ( flag!=i )
- {
- flag++;
- root=b;
- b=root->next;
- root->next=c;
- c=root;
- }
- root=b;
- root->next=c;
- tmp=root;
- /*倒置节点结束*/
- while ( NULL!=tmp)
- {
- fprintf(stderr,"%d ",tmp->data);
- tmp=tmp->next;
- }
- fprintf(stderr,"\n");
- tmp=root;
- while ( NULL!=tmp)
- {
- d=tmp->next;
- free(tmp);
- tmp=d;
- }
- tmp = NULL;
- root = NULL;
-
- }
作者: kanhfshiys 发布时间: 2010-06-22
typedef struct node
{
int data;
struct node *link;
}NODE;
void reverse(NODE head)
{
NODE temp = null;
NODE p = head->link;
head->link = null;// 头结点变为尾结点
while(p!=null)
{
temp = p->link;
p->link = head;// 当前结点指针倒置
head = p;
p = temp;
}
}
作者: kmindg 发布时间: 2010-06-22
作者: ydfgic 发布时间: 2010-06-22
作者: benjiam 发布时间: 2010-06-22
asdmonster 发表于 2010-06-22 15:52
节点是节点,指针是指针....
作者: zhaohongjian000 发布时间: 2010-06-22
{
if( head==NULL )
return;
struct node *pre, *cur, *nex;
pre = head;
cur = pre->next;
while( cur )
{
nex = cur->next;
cur->next = pre;
pre = cur;
cur = nex;
}
head->next = NULL;
head = pre;
return;
}
作者: mgqw 发布时间: 2010-06-22
作者: 没本 发布时间: 2010-06-22
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28