给你一个二叉树的根节点 root , 检查它是否轴对称。
提示:
[1, 1000] 内-100 <= Node.val <= 100示例1

示例2

我看完题目后的第一反应就是,这居然是一道简单题!感觉至少也算是中等难度吧,我想了十几分钟才想到解题的方法。。。
class Solution {
public boolean isSymmetric(TreeNode root) {
List<Integer> leftList = new ArrayList<>();
List<Integer> rightList = new ArrayList<>();
dfs(root.left, leftList, true);
dfs(root.right, rightList, false);
if (leftList.size() != rightList.size()) {
return false;
}
for(int i = 0 ;i < leftList.size() ;i++) {
// 这题因为节点的值在正负100以内,所以我直接用 != 来判断了
if (leftList.get(i) != rightList.get(i)) {
return false;
}
}
return true;
}
private void dfs(TreeNode node, List<Integer> list, boolean isLeft) {
if (node == null) {
list.add(null);
return ;
}
list.add(node.val);
if (isLeft) {
dfs(node.left, list, isLeft);
dfs(node.right, list, isLeft);
} else {
dfs(node.right, list, isLeft);
dfs(node.left, list, isLeft);
}
}
}
排名不太妙哈哈哈哈,原题链接:https://leetcode.cn/problems/symmetric-tree/submissions/
