Problem: 101. 对称二叉树
文章目录
- 思路
- Code
思路
👨🏫 参考
Code
时间复杂度: O ( n ) O(n) O(n)
空间复杂度: O ( n ) O(n) O(n)
/*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val = val; }* TreeNode(int val, TreeNode left, TreeNode right) {* this.val = val;* this.left = left;* this.right = right;* }* }*/
class Solution {public boolean isSymmetric(TreeNode root){return isSame(root.left, root.right);}private boolean isSame(TreeNode l, TreeNode r){//递归的终止条件是两个节点都为空//或者两个节点中有一个为空//或者两个节点的值不相等if (l == null || r == null)return l == r;//再递归的比较 左节点的左孩子 和 右节点的右孩子//以及比较 左节点的右孩子 和 右节点的左孩子return l.val == r.val && isSame(l.left, r.right) && isSame(l.right, r.left);}
}