árbol simétrica:
=================== // recursiva algoritmo =========================== // ==
1. Tan pronto como pRoot.left son simétricos y pRoot.right
2. El nodo izquierdo
valores iguales
y
simétricos subárbol
left.left, right.right; left.rigth, right.left
también simétrica
/ * Public class NodoArbol { int val = 0; TreeNode dejó = null; TreeNode derecha = null; NodoArbol pública (int val) { this.val = val; } } * / Pública clase de soluciones { pública booleano Jude (NodoArbol nodo1, NodoArbol nodo2) { si (nodo 1 == nula && nodo2 == nula ) { devolver cierto ; } Demás si (nodo 1 == nula || nodo2 == nula ) volver falsa ; Si(! = node1.val node2.val) de retorno falsa ; otra cosa { volver Jude (node1.left, node2.right) && Jude (node1.right, node2.left); } } Pública booleano isSymmetrical (NodoArbol PROOT) { retorno PROOT == nula || Jude (pRoot.left, pRoot.right); } }
// =================== algoritmo no recursivo, el uso de DFS y BFS ===================== ======== //