JavaScript實現-LeetCode刷題-【對稱二叉樹】-第101題!!!
題目:
題目截圖:
解題步驟:
符合分而治之的特點
1.分:獲取兩個樹的左子樹和右子樹
2.解:遞迴地判斷樹1的左子樹和樹2的右子樹是否映象,樹1的右子樹和樹2的左子樹是否映象
3.合:如果上述都成立,且根節點值也相同,兩個樹就映象
程式碼:
/**
* Definition for a binary tree node.
* function TreeNode(val) {
* this.val = val;
* this.left = this.right = null;
* }
*/
/**
* @param {TreeNode} root
* @return {boolean}
*/
var isSymmetric = function (root) {
if (!root) return true; // 如果是空樹,則判斷為是映象的
const isMirror = (l, r) => {
if (!l && !r) return true; // 遍歷到了葉子節點就是遞迴的終點
if (l && r && l.val === r.val
&& isMirror(l.left, r.right) &&
isMirror(l.right, r.left)
) return true;
return false;
};
return isMirror(root.left, root.right);
};
時間複雜度分析:
時間複雜度是O(n),n是樹的節點個數,因為遍歷到了所有的節點
空間複雜度分析:
空間複雜度是O(n),記住一點:凡是涉及到二叉樹的空間複雜度,如果是遞迴的話,
就是O(n),因為最壞的情況下,樹的高度等於樹的節點個數
怎麼樣,是不是很簡單,你學會了嗎?
如果這篇文章能夠幫助到您,希望您不要吝惜點贊??和收藏??,您的支援是我繼續努力的動力 ??!!!
相關文章
- leetcode-101-Symmetric Tree-二叉樹對稱問題LeetCode二叉樹
- 101. 對稱二叉樹二叉樹
- 刷題系列 - Python判斷是否映象對稱二叉樹Python二叉樹
- Leetcode 題解系列 -- 對稱二叉樹(遞迴)LeetCode二叉樹遞迴
- LeetCode 對稱二叉樹LeetCode二叉樹
- LeetCode 刷題—樹LeetCode
- 第 34 題:如何實現二叉查詢樹?
- leetcode 刷題視訊(5) - 二叉樹與圖LeetCode二叉樹
- LeetCode刷題之第701題LeetCode
- 刷題系列 - Python用遞迴實現求二叉樹深度Python遞迴二叉樹
- 刷題系列 - Python實現二叉樹按層級遍歷Python二叉樹
- 【LeetCode刷題(中等程度)】662. 二叉樹最大寬度LeetCode二叉樹
- 對稱二叉樹二叉樹
- LeetCode題解(Offer28):判斷二叉樹是否左右對稱(Python)LeetCode二叉樹Python
- LeetCode第 543 題:二叉樹的直徑(C++)LeetCode二叉樹C++
- 【LeetCode-面試演算法經典-Java實現】【101-Symmetric Tree(對稱樹)】LeetCode面試演算法Java
- 【刷題】二叉樹非遞迴遍歷二叉樹遞迴
- 刷題系列 - Python用非遞迴實現二叉樹前序遍歷Python遞迴二叉樹
- 對稱的二叉樹二叉樹
- 對稱二叉樹(力扣)圖解、思路與實現二叉樹力扣圖解
- 刷題系列 - Python用非遞迴實現二叉樹後續遍歷Python遞迴二叉樹
- 刷題系列 - Python用非遞迴實現二叉樹中序遍歷Python遞迴二叉樹
- 劍指offer(java實現)第4題“重建二叉樹”-牛客網Java二叉樹
- LeetCode刷題(javascript,python3)LeetCodeJavaScriptPython
- 【javascript實現】幾道題目帶你學習二叉搜尋樹JavaScript
- javascript實現二叉搜尋樹JavaScript
- Leetcode刷題筆記 501. 二叉搜尋樹中的眾數LeetCode筆記
- JavaScript 二叉搜尋樹以及實現翻轉二叉樹JavaScript二叉樹
- 使用javascript實現排序二叉樹(2)JavaScript排序二叉樹
- 使用javascript實現排序二叉樹(1)JavaScript排序二叉樹
- JZ-058-對稱的二叉樹二叉樹
- LeetCode刷題整理LeetCode
- leetcode刷題(一)LeetCode
- LeetCode刷題 堆LeetCode
- 刷題系列 - 中序和後序遍歷佇列,構造對應二叉樹;佇列二叉樹
- leetcode 每日一題 617 合併二叉樹LeetCode每日一題二叉樹
- 【Leetcode千題】617. 合併二叉樹LeetCode二叉樹
- 程式碼隨想錄演算法訓練營第十四天|leetcode226. 翻轉二叉樹、leetcode101.對稱二叉樹、leetcode104.二叉樹的最大深度、leetcode111.二叉樹的最小深度演算法LeetCode二叉樹