设两个无头结点循环单链表,用头指针head1,head2指向。试将head2链接到head1之后,
时间: 2023-05-08 18:01:30 浏览: 96
将head2的next指向head1的下一个节点,同时将head1的next指向head2。需要注意的是,如果head1和head2指向同一个链表,则需要先找到head1的尾节点,然后将head2的next指向head1的下一个节点,再将head1的next指向head2,最后将head2的尾节点的next指向head1即可。这个操作可以用一个循环实现,先找到head1的尾节点,然后将head2的next指向head1的下一个节点,再将head1的next指向head2,然后将head2的尾节点移动到原本的head1的尾节点位置,即可完成链表的链接。链接完成后,head1依然指向链表的头部节点,head1的next指向链表的第二个节点,而head2则成为了head1的后继节点,head2的next指向链表的第三个节点。这样就可以通过head1依次遍历整个链表,包括head2所在的部分。若需要删除head2,只需将head1的next指向head2的下一个节点即可。
相关问题
假设单链表结点结构类型定义如下: struct LNode{ int data; LNode *next; }; 已知两个带头结点的元素为整型数据的单链表的头指针分别为head1和head2,依下面三种要求分别写一算法void Link (LNode *head1, LNode *head2),将其链在一起成为一个带头结点的单链表,要求第二个单链表链在第一个的后面。要求写一新建的head作为链接后单链表的头结点,不破坏原来的两单链表的结点,产生新链表的方式进行链接。
算法1:
```c++
void Link(LNode *head1, LNode *head2){
LNode *p = head1;
while(p->next != NULL){
p = p->next;
}
p->next = head2->next;
}
```
算法2:
```c++
void Link(LNode *head1, LNode *head2){
LNode *p = head1;
while(p->next != NULL){
p = p->next;
}
LNode *q = head2->next;
while(q != NULL){
LNode *temp = new LNode();
temp->data = q->data;
temp->next = NULL;
p->next = temp;
p = p->next;
q = q->next;
}
}
```
算法3:
```c++
void Link(LNode *head1, LNode *head2){
LNode *newHead = new LNode();
LNode *p = newHead;
LNode *q1 = head1->next;
LNode *q2 = head2->next;
while(q1 != NULL && q2 != NULL){
if(q1->data <= q2->data){
p->next = q1;
q1 = q1->next;
} else {
p->next = q2;
q2 = q2->next;
}
p = p->next;
}
if(q1 == NULL){
p->next = q2;
} else {
p->next = q1;
}
head1->next = newHead->next;
}
```
以上三个算法实现的功能都是将head2链表接在head1链表的末尾,但算法2和算法3是将head2链表中的结点复制一份添加到head1链表中,而不是直接将head2链表接在head1链表的末尾。
struct Node{ int data; //数据域 Node*next; //指针域 }; 带头结点的单链表的结点结构Node声明如上,头指针为head,要把p所指结点链接到head所指结点之后的语句是( )。
可以使用以下语句将p所指结点链接到head所指结点之后:
```
p->next = head->next;
head->next = p;
```
其中,首先将p的next指针指向head的next指针指向的结点,然后将head的next指针指向p,就可以完成链接操作了。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)