Решение: Мы можем найти все узлы в исходном дереве является деревом зеркального вокруг сына взаимозаменяем!
Таким образом , мы рекурсивно обходить все узлы в исходном дереве, сын слева и справа от каждого узла можно поменять местами.
I: рекурсивно обходить все узлы дерева, то как рекурсия?
/ * *
* Определение для бинарного узла дерева.
* Структура TreeNode {
* INT вал;
* * TreeNode влево;
* * TreeNode право;
* TreeNode (целое х): вал (х), слева (NULL), справа (NULL) {}
*};
* /
Класс Решение {
общественности :
недействительным Зеркало (TreeNode * корень) {
IF (! Root)
// возврат NULL, запись неправильно
возврата ;
(Корень своп ; -> левый, каталог корне-> справа) // Обмен левого поддерева (узлы)
/ * все узлы в дереве может быть пройдена нормализуется * /
Зеркало (корень -> влево);
зеркало (корень -> справа);
}
};