单链表尾插法不使用双重指针
时间: 2024-06-20 10:03:44 浏览: 77
链表尾插法
单链表尾插法是在链表的尾部插入新节点的方法,一般使用双重指针可以更加方便地完成操作。但是如果不使用双重指针,可以在代码中使用一个指针变量来记录链表的尾节点,然后通过该指针变量来进行插入操作。
具体实现步骤如下:
1. 定义链表节点结构体,包括数据域和指向下一个节点的指针域。
2. 定义一个头指针和一个尾指针,初始化时两个指针都指向NULL。
3. 读入数据,创建一个新节点。
4. 如果链表为空,头指针和尾指针都指向新节点,否则将新节点插入到尾部并更新尾指针。
5. 重复步骤3和4直到所有数据都读入完成。
示例代码如下:
```
#include <stdio.h>
#include <stdlib.h>
typedef struct ListNode {
int data;
struct ListNode *next;
} ListNode;
int main() {
ListNode *head = NULL; //头指针初始化为空
ListNode *tail = NULL; //尾指针初始化为空
int num;
while (scanf("%d", &num) != EOF) {
ListNode *newNode = (ListNode*)malloc(sizeof(ListNode));
newNode->data = num;
newNode->next = NULL;
if (head == NULL) {
head = newNode;
tail = newNode;
} else {
tail->next = newNode;
tail = newNode;
}
}
//输出链表
ListNode *p = head;
while (p != NULL) {
printf("%d ", p->data);
p = p->next;
}
return 0;
}
```
阅读全文