首先我们建立一个根节点
struct tree root = (struct tree*)malloc(sizeof(struct tree));
root->val = 1;
root->left = NULL;
root->right = NULL;
temp = root->left;
当然我们会想到temp 和 root->left 意义相同没有任何区别,但有一种情况却出现的差别。
其次,我们延长根节点的右子树。
root->right = (struct tree*)malloc(sizeof(struct tree));
root->right->val = 2;
root->right->left = NULL;
root->right->right =NULL;
那么差异出现了
root->left = root->right;
temp = root->right;
然而在这里的第二行处会报错,原因是什么?难道两者有差别?其实temp = root->left,这里的root->left只是NULL值所以temp得到的并不是root的左子树的根结点,所以在这里产生了差异。