单链表 使用哑结点避免特殊情况 利大于弊?
哑结点,就是链表的根节点. 一般的, 单链表的插入要考虑空链表的处理, 但如果有哑结点, 就无需这样考虑.
那这样好吗?
如果这样,你需要保证进入插入函数前, 单链表有哑结点, 所以你需要创建, 而且每次操作单链表需要跳过哑结点. 也就是说, 增加哑结点并没有减少特殊情况的处理, 相反, 这些处理分散到其他函数里. 我认为, 为了提高模块的独立性, 应该把空链表处理补上.
哑结点,就是链表的根节点. 一般的, 单链表的插入要考虑空链表的处理, 但如果有哑结点, 就无需这样考虑.
那这样好吗?
如果这样,你需要保证进入插入函数前, 单链表有哑结点, 所以你需要创建, 而且每次操作单链表需要跳过哑结点. 也就是说, 增加哑结点并没有减少特殊情况的处理, 相反, 这些处理分散到其他函数里. 我认为, 为了提高模块的独立性, 应该把空链表处理补上.