árbol binario? ! flip
Tema
vuelta a un árbol binario.
Ejemplos
Ejemplo:
Entrada:
. ----- 4
---- / \
---- 2-7
- / \ - /
\ -1369
de salida:
. ---- 4
---- / \
--7 - 2
- / \ - / \
-9631
tema de análisis
- binaria flip
izquierda y derecha subárboles intercambio simétrico
- Un simétrico binario
sobre el subárbol intercambio puntero - árbol binario simétrico
, que sub-árboles son simétricas ==> recursivas
Ideas de resolución de problemas
Proceso
para la raíz actuales
punteros de cambio en el contenido de los subárboles izquierdo y derecho
- presencia subárbol izquierdo ==> simétrica subárbol izquierdo
- presencia subárbol derecho ==> simetría del subárbol derecho
Código es el siguiente
class Solution {
public:
TreeNode* invertTree(TreeNode* root) {
if(!root) return root;
TreeNode* temp;
temp = root->left;
root->left = root->right;
root->right = temp;
if(root->left) invertTree(root->left); //递归左子树对称
if(root->right) invertTree(root->right); //递归右子树对称
return root;
}
};