1. 定义一个模板的双向链表结构体 // An highlighted block template<class T> struct ListNode { T data; //节点数据域 ListNode<T>* pre; //指向前一个节点的指针 ListNode<T>* next; //指向后一个节点的指针 //构造函数 ListNode(const T& e=T(), ListNode<T>* p=NULL; ListNode<T>* n=NULL):data(e),pre(p),next(n) { } }