有头单链表怎么变成无头单链表举例
时间: 2023-11-25 14:07:09 浏览: 27
假设有一个有头单链表,其头节点为head,节点结构体定义如下:
```
struct ListNode {
int val;
ListNode *next;
ListNode(int x) : val(x), next(NULL) {}
};
```
那么将其变成无头单链表,即将head节点去掉。具体操作可以将原本的头节点作为第一个元素,新建一个头指针指向第一个元素,代码示例如下:
```
// 原本的有头单链表
ListNode* head = new ListNode(0);
ListNode* node1 = new ListNode(1);
ListNode* node2 = new ListNode(2);
head->next = node1;
node1->next = node2;
// 变为无头单链表
ListNode* newHead = node1;
node1->next = node2;
```
这样,原本的头节点head被去掉,新的头指针newHead指向第一个元素node1。
相关问题
c语言有头单链表怎么变成无头单链表举例
将头节点删除,使第二个节点成为新的头节点即可将头单链表变成无头单链表。
举例:
假设有以下头单链表:
```
head -> 1 -> 2 -> 3 -> 4 -> NULL
```
要将其变成无头单链表,可以先定义一个指针指向第二个节点:
```
Node *newHead = head->next;
```
然后将头节点删除:
```
free(head);
```
最后,将新的头节点设置为链表的第一个节点:
```
head = newHead;
```
这样就将头单链表转变成了无头单链表:
```
1 -> 2 -> 3 -> 4 -> NULL
```
有头单链表怎么变成无头单链 表 详细举例
将一个有头单链表变成无头单链表,需要做以下几个步骤:
1. 定义一个新的指针变量,指向原有头结点的下一个节点,即第一个有效节点。
2. 释放原有头结点的内存空间,使新的指针变量成为链表的新头结点。
3. 修改链表中所有节点的指针域,使它们都指向下一个节点而不是当前节点的前一个节点。
下面是一个具体的示例:
假设有一个有头单链表L,其中头结点的数据域为-1,指针域指向第一个有效节点1,而第一个有效节点1的数据域为10,指针域指向第二个有效节点2。链表中共有5个节点,最后一个节点的指针域为NULL。
```
头结点 第一个有效节点 第二个有效节点 第三个有效节点 第四个有效节点 第五个有效节点
-1 -> 1(10) -> 2(20) -> 3(30) -> 4(40) -> 5(50) -> NULL
```
现在要将这个有头单链表变成无头单链表,具体的步骤如下:
1. 定义一个新的指针变量p,指向第一个有效节点1。
2. 释放原有头结点的内存空间。
3. 修改每个节点的指针域,使它们都指向下一个节点。
代码实现如下:
```c++
// 定义有头单链表的结构体
struct ListNode {
int val;
ListNode* next;
ListNode(int x) : val(x), next(NULL) {}
};
// 将有头单链表变成无头单链表
ListNode* removeHead(ListNode* head) {
if (head == NULL || head->next == NULL) {
return head;
}
ListNode* p = head->next; // 新的头结点指向第一个有效节点
delete head; // 释放原有头结点的内存空间
head = p; // 新的头结点是第一个有效节点
while (p != NULL) { // 修改每个节点的指针域
ListNode* next = p->next;
p->next = head;
head = p;
p = next;
}
return head;
}
```
执行上述代码后,链表就变成了无头单链表,其结构如下:
```
第一个有效节点 第二个有效节点 第三个有效节点 第四个有效节点 第五个有效节点
1(10) -> 2(20) -> 3(30) -> 4(40) -> 5(50) -> NULL
```
相关推荐
![text/x-c](https://img-home.csdnimg.cn/images/20210720083646.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_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)