(java)leetcode 101.对称二叉树
程序员文章站
2022-03-26 21:38:48
...
题目解读:
一看见树,我们就会第一想到递归解决,第二想到用栈/队列解决,这题选择递归还是比较方便的,这个对称二叉树,我们就把第二层的两个非叶子节点当做root,按照对称的顺序去递归即可,其实还是比较简单的。
题目思路:
我们可以先对根节点做边界处理,然后得到根的左节点和右节点,当做树根,去左右依次递归。
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
class Solution {
public boolean isSymmetric(TreeNode root) {
if(root == null) {
return true;
/}
TreeNode root1 = root;
return compare(root.left,root1.right);
}
public boolean compare(TreeNode root,TreeNode root1){
if(root == null && root1 == null) {
return true;
}
if(root == null || root1 == null) {
return false;
}
if(root.val != root1.val) {
return false;
}
return compare(root.left, root1.right) && compare(root.right, root1.left);
}
}
下一篇: 无法打开install.wim怎么办