解答
创建线索二叉树和创建普通的二叉树(二叉链表)相似,我们同样约定采用前序遍历的方式进行创建树结点。
如何线索化二叉树呢?我们采用中序遍历二叉树访问每一个树结点的时候,我们只知道当前结点,如何知道前驱结点呢?我们能否考虑将刚刚访问的结点(pre)保存下来,每次访问树结点的时候,发现左孩子结点为NULL,就将其线索化!它的前驱结点是不是pre结点呢?!tree->lchild = pre;那个刚刚访问的结点 (pre)的右孩子结点 为NULL,那么将其线索化 pre 它的后继结点是不是当前结点呢?!pre->rchild = tree;具体详细代码请看代码实现。
下面是一张简陋的二叉线索树的图,箭头方向 代表该结点前驱和后继结点。红色箭头表示 原来的孩子结点都不为空,直接就是自己的前驱或者后继结点。黑色箭头表示的通过线索添加的前驱后驱结点,都是孩子结点为NULL 而添加的。
有没有大佬带带小白
刚接触Redis,太有用了!!
比之前听的课更好懂