leetcode-day23-葉子相似的樹[872]


換了新工作,鬆懈了好久,從今天開始繼續刷刷算法題吧

遞歸法
思路:首先是比較葉子節點,葉子節點的特點是沒有左右子節點,所以使用遞歸直到找到沒有左右子節點的時候,即爲葉子節點,將葉子節點的值記錄下來,最後進行比較。

/**
 * Definition for a binary tree node.
 * function TreeNode(val, left, right) {
 *     this.val = (val===undefined ? 0 : val)
 *     this.left = (left===undefined ? null : left)
 *     this.right = (right===undefined ? null : right)
 * }
 */
/**
 * @param {TreeNode} root1
 * @param {TreeNode} root2
 * @return {boolean}
 */
function getTree(root, resArr){
    if(root.left === null && root.right === null){
        resArr.push(root.val);
        return resArr;
    }else{
        if(root.left){
            getTree(root.left, resArr);
        }
        if(root.right){
            getTree(root.right, resArr);
        }
    }
}
var leafSimilar = function(root1, root2) {
    if(root1 === null || root2 === null) return true;
    let rootArr1 = [], rootArr2 = [];
    if(root1){
        getTree(root1, rootArr1);
    }
    if(root2){
        getTree(root2, rootArr2);
    }
    return rootArr1.toString() === rootArr2.toString();
};
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章