題目:
解題思路:可以新寫一個函數,從root開始,root的left的頭結點將記為lefttree(左子樹),root的lright的頭結點將記為righttree(右子樹),
然后遞歸左子樹的root.left與右子樹的root.right,左子樹的root.right與右子樹的root.left進行比較,
一共有四種情況,第一種左子樹與右子樹都為空,第二種左子樹或者右子樹為空,第三種lefttree與righttree的值不一樣,第四種則是左子樹與右子樹對稱
解題代碼:
class Solution {public boolean isSymmetric(TreeNode root) {if(root==null){return true;}return isequal(root.left,root.right);}public boolean isequal(TreeNode treeleft,TreeNode treeright){if(treeleft==null&&treeright==null){return true;}if(treeleft==null||treeright==null){return false;}if(treeleft.val!=treeright.val){return false;}return isequal(treeleft.left,treeright.right)&& isequal(treeleft.right,treeright.left);}
}