对称树

/**
* 对称树
*/
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)
}

  

posted @ 2023-01-28 18:14  671_MrSix  阅读(10)  评论(0编辑  收藏  举报