一个链表的每个节点,有一个指向next指针指向下一个节点,还有一个rand指针指向这个链表中的一个随机节点或NULL,现在要求复制一个单链表来实现这个链表,返回复制后的新链表。
来源:互联网 发布:dnf安图恩数据异常 编辑:程序博客网 时间:2024/05/18 06:22
假设有List 为: 1 3 5 7 9
List* phead为此链表的头结点
typedef struct ComNode
{
int _data;
struct ComNode* next;
struct ComNode* rand;
}ComNode;
ComNode* BuyNode(Data x)
{
ComNode *phead_1;
phead_1= (ComNode*)malloc(sizeof(ComNode));
phead_1->_data = x;
phead_1->next = NULL;
phead_1->rand= NULL;
return phead_1;
}
ComNode* InitComNode(List** pphead)
{
int count = 1;
int count_2 = 0;
List* start = *pphead;
ComNode* phead = BuyNode((*pphead)->arrary);
ComNode* start_1 = phead;
ComNode* cur = phead;;
int count_1 = rand() % 2;
if (count_1 == 1)
{
start_1->rand = phead;
}
else
{
start_1->rand = NULL;
}
while ((start)->next!=NULL)
{
start = start->next;
start_1->next = BuyNode(start->arrary);
start_1 = start_1->next;
count++;
count_2 = rand() % count;
while (count_2 > 0)
{
cur = cur->next;
count_2--;
}
start_1->rand = cur;
cur = phead;
}
return phead;
}
void PrintCom_1(ComNode* phead)
{
ComNode* start = phead;
while (start)
{
printf("%d ", start->_data);
start = start->next;
}
printf("\n");
}
- 一个链表的每个节点,有一个指向next指针指向下一个节点,还有一个rand指针指向这个链表中的一个随机节点或NULL,现在要求复制一个单链表来实现这个链表,返回复制后的新链表。
- java实现输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head
- 有一个特殊的链表,其中每个节点不但有指向下一个节点的指针pNext,还有一个指向链表中任意节点的指针pRand,如何拷贝这个特殊链表?
- 输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head
- 输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。
- 输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序
- 21.输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判
- 输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序
- 输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序
- 1.01一个单向链表,不知道头节点,一个指针指向其中的一个节点,问如何删除这个指针指向的节点?
- 给定一个链表,链表的每一个节点包含三个属性:1、节点值;2、指向下一个结点的引用;3、随机指向链表内任意一个节点的引用,也能不指向任何节点。复制该链表
- 给定一个单向链表,目前已经有一个指针,指向某一个节点(记作A),现在要删除这个节点A,如何操作。
- 如何复制一个含有随机指针节点的链表
- 有一个单项的链表,在没有头结点的情况下,只知道有一个指向结点B的指针p,假设这个结点B不是尾结点,删除该节点B。
- 淘宝笔试题:一颗完全二叉树,要求给所有节点加上一个pNext指针,指向同一层的相邻节点;如果当前节点已经是该层的最后一个节点,则将pNext指针指向NULL
- 淘宝笔试题:一颗完全二叉树,要求给所有节点加上一个pNext指针,指向同一层的相邻节点;如果当前节点已经是该层的最后一个节点,则将pNext指针指向NULL
- 随机返回一个链表的节点
- 给定一单链表的表头指针和指向其中一个节点的指针,要求以该指针为头将原链表逆序
- hdu 5781(期望dp)
- 结合redis设计与实现的redis源码学习-2-SDS(简单动态字符串)
- Android开发艺术探索学习笔记2——IPC机制
- offer30--最小的k个数
- C++知识点小结
- 一个链表的每个节点,有一个指向next指针指向下一个节点,还有一个rand指针指向这个链表中的一个随机节点或NULL,现在要求复制一个单链表来实现这个链表,返回复制后的新链表。
- 欢迎使用CSDN-markdown编辑器
- 树莓派开机启动python脚本的另一种方法【转】
- 寒假学习之stm32(13)----ADC(模数转换)
- 8. String to Integer (atoi)
- 如何用TensorFlow训练和识别/分类自定义图片
- 设计模式之观察者模式
- LWC 51:682. Baseball Game
- Unix网络编程思想