Morris 算法介绍
访问该节点
转向右节点 找到左后代的最右节点,且使最右节点的右指针指向当前节点
转向左后代节点 if (p->left == NULL) {
printf("%d ", p->key);
p = p->right;
}
else {
tmp = p->left;
while (tmp->right != NULL && tmp->right != p)
tmp = tmp->right;
if (tmp->right == NULL) {
tmp->right = p;
p = p->left;
}
else {
printf("%d ", p->key);
tmp->right = NULL;
p = p->right;
}
} Last updated