58對稱的二叉樹
阿新 • • 發佈:2018-01-11
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) returntrue; 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對稱的二叉樹