LeetCode-對稱二叉樹
阿新 • • 發佈:2018-11-14
LeetCode-對稱二叉樹
Table of Contents
1 Easy-對稱二叉樹
給定一個二叉樹,檢查它是否是映象對稱的。
例如,二叉樹 [1,2,2,3,4,4,3] 是對稱的。
1 / \ 2 2 / \ / \ 3 4 4 3 但是下面這個 [1,2,2,null,3,null,3] 則不是映象對稱的:
1 / \ 2 2 \ \ 3 3
2 自己的解答
2.1 思路
- 這題跟之前做過的一道題非常類似,同樣可以利用遞迴法解決. 參考 LeetCode-相同的樹
2.2 程式碼
package algorithm.easy; public class IsSymmetric { public boolean solution(TreeNode root) { if (root == null) { return true; } else { return subCompare(root.left, root.right); } } public boolean subCompare(TreeNode p, TreeNode q) { boolean lc = false; boolean rc = false; // 如果p和q均為空,映象對稱,true if (p == null && q == null) { return true; } else if (p != null && q != null) { // 如果p和q都不為空,比較值是否相同,相同,遞迴遍歷 if (p.val == q.val) { // 比較p的左和q的右是否一致 lc = subCompare(p.left, q.right); // 比較q的左和p的右是否一致 rc = subCompare(p.right, q.left); } else { // 不同,不是映象對稱 return false; } } else { // 如果p和q其中一方為空,映象不對稱,false return false; } return lc && rc; } }
Date: 2018-11-14 00:06
Created: 2018-11-14 三 00:09