概述
2019独角兽企业重金招聘Python工程师标准>>>
题目:
链表操作:
1. 单链表就地逆置
2. 合并链表
数据结构基础题
代码实现(GCC编译通过)
#include "stdio.h"
#include "stdlib.h"
typedef struct node
{
int data;
struct node * next;
}link;
link * ReverseLink(link * head);
link * AddLink(link * h1,link * h2);
int main(void)
{
link *head,*p;
int i;
srand((unsigned int)time(0));
head = p = (link *)malloc(sizeof(link));
head-> data = rand()%101;
head-> next = NULL;
for(i=1;i<10;i++)
{
p = p->next = (link *)malloc(sizeof(link));
p->data = rand()%101;
p->next = NULL;
}
for(p = head;p;p=p->next)
printf("%d ",p->data);
head = ReverseLink(head);
printf("n");
for(p = head;p;p=p->next)
printf("%d ",p->data);
printf("n");
return 0;
}
link * ReverseLink(link * head)
{
link * p, *r;
p = head->next;
head->next = NULL;
while(p)
{
r = p->next;
p->next = head;
head = p;
p = r;
}
return head;
}
link * AddLink(link * h1,link * h2)
{
link * head,* p;
if(h1->data > h2->data)
{
head = h2;
h2 = h2->next;
}
else
{
head = h1;
h1 = h1->next;
}
p = head;
while(h1 && h2)
{
if(h1->data > h2->data)
{
p->next = h2;
h2 = h2->next;
p = p->next;
}
else
{
p->next = h1;
h1 = h1->next;
p = p->next;
}
}
if(h1)
p->next = h1;
else
p->next = h2;
return head;
}
转载于:https://my.oschina.net/u/1470003/blog/233637
最后
以上就是拉长皮皮虾为你收集整理的单链表就地逆置以及链表合并的全部内容,希望文章能够帮你解决单链表就地逆置以及链表合并所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复