假设双向循环链表包含头尾哨兵结点(不存储实际内容),分别为head和tail,链表中每个结点有两个指
针域prev和next,分别指向该结点的前驱及后继结点。下面代码实现了一个空的双向循环链表,横线上应填的最
佳代码是( )。
// 链表结点 template <typename T> struct ListNode { T data; ListNode* prev; ListNode* next; // 构造函数 explicit ListNode(const T& val = T()) : data(val), prev(nullptr), next(nullptr) {} }; struct LinkedList { ListNode<T>* head; ListNode<T>* tail; }; void InitLinkedList(LinkedList* list) { list->head = new ListNode<T>; list->tail = new ListNode<T>; ________________________________ // 在此处填入代码 };