在链表中使用根节点有什么好处

时间:2014-03-16 04:16:21

标签: linked-list singly-linked-list

从社区学院,我被告知实现链接列表,其中起始节点为空节点,并将数据节点附加到空节点,但在大学,他们不使用空节点。我记得有一个空节点有优势,但此时无法回想起它。

拥有空节点有什么好处?

我能想到的是,空的起始节点可以存储列表属性,例如链表的大小,并且因为它永远不会被删除,我们可以从中提取列表属性。

这是一个有空节点的例子:(也可以参考empty node implementation

(EmptyNode)->(1st Data)->(2nd Data)->null

这是一个没有空节点的例子。

(1st Data)->(2nd Data)->null

提前谢谢。

1 个答案:

答案 0 :(得分:0)

空节点的优点是更容易表示仍然存在的空列表。

虽然您有时可以将空列表表示为null,但缺点是它假定列表始终表示为指针。另一个缺点是你无法在null上调用任何函数/你使界面变得尴尬。

想象:

RootNodedListNode<char> list; // start empty
list.add('a');
list.add('b');

RootlessListNode<char> * list = null; // start empty
//list->add('a');
list = new RootlessListNode<char>('a');
list->add('b');