对称树
/**
* 对称树
*/
const symmetricTree = { value: 1, left: { value: 2, left: { value: 3, left: { value: 5, }, right: { value: 6, } }, right: { value: 4, left: { value: 7, }, right: { value: 8, } }, }, right: { value: 2, left: { value: 4, left: { value: 8, }, right: { value: 7, } }, right: { value: 3, left: { value: 6, }, right: { value: 5, } }, }, }
/**
* 非对称树
*/
const notSymmetricTree = { value: 1, left: { value: 2, left: { value: 3, left: { value: 5, left: { value: 9 } }, right: { value: 6, right: { value: 10 } } }, right: { value: 4, left: { value: 7, left: { value: 11 } }, right: { value: 8, right: { value: 12 } } }, }, right: { value: 2, left: { value: 4, left: { value: 8, left: { value: 13, }, }, right: { value: 7, right: { value: 14, } } }, right: { value: 3, left: { value: 6, left: { value: 15, }, }, right: { value: 5, right: { value: 16, } } }, }, }
递归
const isSymmetricTree = (node) => { if(!node) return true const isSymmetric = (l, r) => { if(!l && !r || l && r && l.value === r.value && isSymmetric(l.left, r.right) && isSymmetric(l.right, r.left)){ return true } return false } return isSymmetric(node.left, node.right) }
以自己现在的努力程度,还没有资格和别人拼天赋