LeetCode Hot100 101.对称二叉树

题目:

给你一个二叉树的根节点 root , 检查它是否轴对称

LeetCode Hot100 101.对称二叉树_第1张图片

代码:

class Solution {
	public boolean isSymmetric(TreeNode root) {
		if(root==null || (root.left==null && root.right==null)) {
			return true;
		}
		//用队列保存节点
		LinkedList queue = new LinkedList();
		//将根节点的左右孩子放到队列中
		queue.add(root.left);
		queue.add(root.right);
		while(queue.size()>0) {
			//从队列中取出两个节点,再比较这两个节点
			TreeNode left = queue.removeFirst();
			TreeNode right = queue.removeFirst();
			//如果两个节点都为空就继续循环,两者有一个为空就返回false
			if(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)

你可能感兴趣的:(算法刷题-二叉树,leetcode,算法,职场和发展)