根据《线索二叉树的画法》我们知道,节点A线索的指向是由遍历序列中A的左右决定的。于是显而易见有以下两个结论:
- 如果,遍历序列中节点A左侧有节点,那么线索二叉树中节点A左线索一定有指向,即左链域不可能空。
- 同理,遍历序列中节点A右侧有节点,那么线索二叉树中节点A右线索一定有指向,即右链域不可能空。
而遍历序列中只有左端的节点没有左侧节点,右端的节点没有右侧节点。所以,空链域也只可能是遍历序列左端节点的左线索,和遍历序列右端节点的右线索。因此,空链域最多是两个。
接下来进一步了解一下。
空链域的前提是二叉树中节点A没有左孩子或右孩子,我们才需要对其线索化,才可能有空链域。如果说,节点A本来就有左右孩子,那么A不可能有空链域,即使A排在了遍历序列的左右两端。
总结一下:
- 左空链域的条件:处于序列最左端,且原来左指针就是空的。
- 右空链域的条件:处于序列最右端,且原来右指针就是空的。