請實現一個函數,用來判斷一棵二叉樹是否是對稱的。注意,若是一個二叉樹同此二叉樹的鏡像是一樣的,定義其爲對稱的java
最簡單的方法就是使用遞歸,只要每個結點的左右子結點(子樹)都相等,那麼天然二叉樹就是對稱的。只要有一個不相等,那就返回 false,沒有必要再遞歸下去了node
public class Solution { boolean isSymmetrical(TreeNode pRoot) { if(pRoot == null) { return true; } return isEqual(pRoot.left, pRoot.right); } boolean isEqual(TreeNode node1, TreeNode node2) { if(node1 == null && node2 == null) { return true; } if(node1 != null && node2 != null && node1.val == node2.val) { return isEqual(node1.left, node2.right) && isEqual(node1.right, node2.left); } return false; } }