第26777题
带头尾哨兵结点的双向循环空链表初始化横线上应填的最佳代码是?

假设双向循环链表包含头尾哨兵结点(不存储实际内容),分别为 headtail,每个结点有两个指针域 prevnext。下面是实现空双向循环链表的部分代码,横线处需补充代码:

class ListNode:
    def __init__(self, val=None):
        self.data = val
        self.prev = None
        self.next = None

class LinkedList:
    def __init__(self):
        self.head = ListNode()
        self.tail = ListNode()
        # 横线上应填入代码
A
self.head.next = self.tail
self.tail.prev = self.head
B
self.head.next = self.head
self.tail.prev = self.tail
C
self.head.next = self.tail
self.tail.next = self.head
D
self.head.prev = self.tail
self.tail.next = self.head