1. 程式人生 > >58對稱的二叉樹

58對稱的二叉樹

int post leetcode lee blog 是否 log eno als

題目描述

請實現一個函數,用來判斷一顆二叉樹是不是對稱的。註意,如果一個二叉樹同此二叉樹的鏡像是同樣的,定義其為對稱的。



leetcode 上的題


傳統遍歷都是 先左後右,
做這個題的時候,我們可以定義一種先右後左的遍歷,然後對比2次遍歷結果是否一致
需要註意的是空節點也要對比


 1 /*
 2 public class TreeNode {
 3     int val = 0;
 4     TreeNode left = null;
 5     TreeNode right = null;
 6 
 7     public TreeNode(int val) {
 8         this.val = val;
9 10 } 11 12 } 13 */ 14 public class Solution { 15 boolean isSymmetrical(TreeNode root){ 16 if(root==null) return true; 17 return isSymm(root.left,root.right); 18 } 19 private boolean isSymm(TreeNode p1,TreeNode p2){ 20 if(p1==null && p2 ==null) return
true; 21 if(p1==null || p2==null) return false; 22 if(p1.val!=p2.val) return false; 23 return isSymm(p1.left,p2.right)&&isSymm(p1.right,p2.left); 24 } 25 }

58對稱的二叉樹