DLinkList createDLinkList(int n) { DLinkList head = (LNode*)malloc(sizeof(LNode)); head->prev = NULL; head->next = NULL; DLinkList tail = head; for (int i = 0; i < n; i++) { DLinkList p = (LNode*)malloc(sizeof(LNode)); p->data = i + 1; p->prev = tail; p->next = NULL; tail->next = p; tail = p; } return head; }
时间: 2024-04-04 17:29:10 浏览: 100
LinkList的实现
这段代码是用来创建双向链表的,其中的参数 n 表示需要创建的链表节点个数。它首先创建一个头结点 head,然后将尾节点 tail 初始化为 head。在 for 循环中,它创建一个新的节点 p 并将其插入到尾节点 tail 的后面,然后将 tail 指向 p,以便下一次循环可以将新的节点插入到它后面。最后,它返回头结点 head。这段代码的时间复杂度为 O(n),因为它需要对链表中的每个节点都进行一次插入操作。
阅读全文