双向链表的结点比单链表的结点多一个前驱指针,所以已知某一个结点后,可以很快速的访问其前驱结点和后继结点。
创建Node类:
1 | class Node(object): |
创建DoubleLinkedList类:
1 | class CircularLinkedList(object): |
在头部插入新结点:
1 | def insert_new_value_to_head(self, value): |
在给定结点后插入新结点:
1 | def insert_new_value_after_target_node(self, target_node, value): |
在给定结点前插入新结点:
1 | def insert_new_value_before_target_node(self, target_node, value): |
删除给定结点
1 | def delete_target_node(self, target_node): |
返回给定值的结点
1 | def get_node_by_value(self, value): |