相同的树

/**
* 相同的树
* 分而治之的思想:判断两树左、右子树值相同,进行递归;若出现不同,则返回false
*/
const sourceTree = {
    value: 5,
    left: {
        value: 3,
        left: {
            value: 2,
            left: null,
            right: null
        },
        right: {
            value: 4,
            left: null,
            right: null
        }
    },
    right: {
        value: 7,
        left: {
            value: 6,
            left: null,
            right: null
        },
        right: {
            value: 8,
            left: null,
            right: {
                value: 10,
                left: null,
                right: null
            }
        }
    }
}

const targetTree = {
    value: 5,
    left: {
        value: 3,
        left: {
            value: 2,
            left: null,
            right: null
        },
        right: {
            value: 4,
            left: null,
            right: null
        }
    },
    right: {
        value: 7,
        left: {
            value: 6,
            left: null,
            right: null
        },
        right: {
            value: 8,
            left: null,
            right: {
                value: 10,
                left: null,
                right: null
            }
        }
    }
}

const isSameTree = (st = sourceTree, tt = targetTree) => {
    if(!st && !tt) return true
    if(st?.value === tt?.value && isSameTree(st.left, tt.left) && isSameTree(st.right, tt.right)){
        return true
    }
    return false
}

  

posted @ 2023-01-28 16:45  671_MrSix  阅读(11)  评论(0编辑  收藏  举报