對稱二叉樹(力扣)圖解、思路與實現
給定一個二叉樹,檢查它是否是映象對稱的。
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
class Solution {
public boolean isSymmetric(TreeNode root) {
if(root == null) {
return true;
}
return isSymmetricChild(root.left,root.right);//呼叫isSymmetricChild傳入(root.left,root.right 相當於把root.left,root.right分別給引用leftTree rightTree
}
public boolean isSymmetricChild(TreeNode leftTree,TreeNode rightTree) {//左樹和右樹 判斷當前左樹和右樹
if((leftTree != null && rightTree == null) || (leftTree == null) && rightTree != null) {//結構不同
return false;
}
if(leftTree == null && rightTree == null) {//只有一個節點 左右都為空
return true;
}
//判斷值是否相同
//值相同時 遞迴判斷左樹的左、右樹的右是否對稱 接下來判斷左樹的右、右樹的左是否對稱
return (leftTree.val == rightTree.val)
&& isSymmetricChild(leftTree.left,rightTree.right)
&& isSymmetricChild(leftTree.right,rightTree.left);
}
}
相關文章
- 對稱二叉樹二叉樹
- 對稱的二叉樹二叉樹
- 力扣 - 劍指 Offer 27. 二叉樹的映象力扣二叉樹
- LeetCode 對稱二叉樹LeetCode二叉樹
- 力扣——朋友圈思路分析力扣
- JZ-058-對稱的二叉樹二叉樹
- 101. 對稱二叉樹二叉樹
- 二叉樹與圖二叉樹
- Leetcode 題解系列 -- 對稱二叉樹(遞迴)LeetCode二叉樹遞迴
- [Golang]力扣Leetcode—初級演算法—樹—二叉樹的最大深度Golang力扣LeetCode演算法二叉樹
- JavaScript實現-LeetCode刷題-【對稱二叉樹】-第101題!!!JavaScriptLeetCode二叉樹
- 每日一練(16):對稱的二叉樹二叉樹
- 《劍指offer》:[59]對稱的二叉樹二叉樹
- 二叉樹實現二叉樹
- 二叉搜尋樹演算法詳解與Java實現演算法Java
- 資料結構高階--AVL(平衡二叉樹)(圖解+實現)資料結構二叉樹圖解
- 力扣工作周刷題 - 94. 二叉樹的中序遍歷力扣二叉樹
- 二叉樹java實現二叉樹Java
- 【C++】判斷一顆二叉樹是否對稱C++二叉樹
- 力扣#94 樹的中序遍歷力扣
- js實現完全排序二叉樹、二叉搜尋樹JS排序二叉樹
- 二叉線索樹實現
- 二叉排序樹的實現排序
- 霍夫曼樹(最優二叉樹)的實現二叉樹
- Java實現紅黑樹(平衡二叉樹)Java二叉樹
- 二叉樹的建立與遍歷(遞迴實現)二叉樹遞迴
- 力扣 653. 兩數之和 IV 二叉樹/binary-tree two-sum IV力扣二叉樹
- JavaScript 二叉搜尋樹以及實現翻轉二叉樹JavaScript二叉樹
- 刷題系列 - Python判斷是否映象對稱二叉樹Python二叉樹
- 力扣-232. 用棧實現佇列力扣佇列
- LeetCode題解(Offer28):判斷二叉樹是否左右對稱(Python)LeetCode二叉樹Python
- 二叉樹的遍歷實現二叉樹
- javascript實現二叉搜尋樹JavaScript
- iOS實現反轉二叉樹iOS二叉樹
- java語言實現二叉樹Java二叉樹
- 【練習】二叉樹的實現二叉樹
- 完全二叉樹實現優先佇列與堆排序二叉樹佇列排序
- 平衡二叉樹(AVL樹)和 二叉排序樹轉化為平衡二叉樹 及C語言實現二叉樹排序C語言