私は最初のステップのみを理解しています。 * tmp =データを含むノード(7)と書かれているところ。
各ステップを図にすると、何が起きているかを簡単に確認できるはずです。
Node *tmp = root->right->left;
root->right->left = tmp->right;
tmp->right = root->right;
root->right = tmp->left;
tmp->left = root;
root = tmp;