【劍指offer】面試題 28. 對稱的二叉樹
阿新 • • 發佈:2018-05-12
fin 技術分享 root 實現一個函數 面試題 分享 inf right png
面試題 28. 對稱的二叉樹
題目描述
題目:請實現一個函數,用來判斷一顆二叉樹是不是對稱的。註意,如果一個二叉樹同此二叉樹的鏡像是同樣的,定義其為對稱的。
解答過程
給定一個二叉樹,檢查它是否是鏡像對稱的。
例如,二叉樹 [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
代碼
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ public class Solution { public boolean isSymmetric(TreeNode root) { if (root == null || (root.left == null && root.right == null)) { return true; } return isSymmetric(root.left, root.right); } public boolean isSymmetric(TreeNode left, TreeNode right) { if (left == null && right == null) { return true; } if (left == null || right == null) { return false; } return (left.val==right.val)&&isSymmetric(left.left, right.right)&&isSymmetric(left.right, right.left); } }
【劍指offer】面試題 28. 對稱的二叉樹