共计 856 个字符,预计需要花费 3 分钟才能阅读完成。
单向列表节点
typedef struct Node {
int data;
struct Node *next;
} LinkNode;
单链表创建 反转链表 删除节点
// 创建节点
LinkNode *rootNode = malloc(sizeof(LinkNode));
rootNode->data = 1;
rootNode->next = NULL;
LinkNode *node1 = malloc(sizeof(LinkNode));
node1->data = 2;
node1->next = NULL;
LinkNode *node2 = malloc(sizeof(LinkNode));
node2->data = 3;
node2->next = NULL;
// 生成链表
rootNode->next = node1;
node1->next = node2;
// 反转链表
LinkNode *node = reverseLink(rootNode);
// 删除链表中的值为 3 元素
deleteLinkElement(node, 2);
反转链表
LinkNode* reverseLink(LinkNode *node){if (node == NULL) {return NULL;}
LinkNode *pre = NULL;
while (node) {
LinkNode *nextTemp = node->next;
node->next = pre;
pre = node;
node = nextTemp;
}
return pre;
}
删除链表节点
LinkNode* deleteLinkElement(LinkNode *node, int element) {if (node == NULL) {return NULL;}
LinkNode *pre = NULL;
while (node) {
LinkNode *nextTemp = node->next;
if (node->data == element) {if (pre) {pre->next = nextTemp;} else {*node = *nextTemp;}
}
pre = node;
node = nextTemp;
}
return pre;
}
正文完