題目:
給你一個二叉樹的根節點?root
?, 檢查它是否軸對稱。
代碼:
class Solution {public boolean isSymmetric(TreeNode root) {if(root==null || (root.left==null && root.right==null)) {return true;}//用隊列保存節點LinkedList<TreeNode> queue = new LinkedList<TreeNode>();//將根節點的左右孩子放到隊列中queue.add(root.left);queue.add(root.right);while(queue.size()>0) {//從隊列中取出兩個節點,再比較這兩個節點TreeNode left = queue.removeFirst();TreeNode right = queue.removeFirst();//如果兩個節點都為空就繼續循環,兩者有一個為空就返回falseif(left==null && right==null) {continue;}if(left==null || right==null) {return false;}if(left.val!=right.val) {return false;}//將左節點的左孩子, 右節點的右孩子放入隊列 重點queue.add(left.left);queue.add(right.right);//將左節點的右孩子,右節點的左孩子放入隊列 重點queue.add(left.right);queue.add(right.left);}return true;}
}
時間復雜度是?O(n),空間復雜度是?O(n)