【Java】【力扣】101.对称二叉树
思路
递归
大问题:对比 左 右 是否对称
参数 左和右
todo 先凑合看
代码
/*** 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 isSymmetricLR(root.left,root.right);}//判断左树 和 右数 是否对称public boolean isSymmetricLR(TreeNode left,TreeNode right) {//都为空if (left == null&&right==null) {return true;}//一个空 一个不空else if (left == null&&right!=null){return false;} else if (left != null&&right==null) {return false;}//都不空,以下://1.判左 和右本身是否不同if (left.val != right.val) {return false;}//2.判断左左 和右右是否不同//问题转化成 递归调用,其中 left为左左,right为右右if(!isSymmetricLR(left.left, right.right)){return false;}//3.判断左右 和右左是否不同//问题转化成 递归调用,其中 left为左右,right为右左if(!isSymmetric(left.right, right.left)){return false;}return true;}}
错误思路
得到中序遍历结果 判断是否对称
出问题: todo为什么这个不行
/*** 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) {//得到中序遍历结果 判断是否对称,双指针List<Integer> list = inorderTraversal(root);//定义指针int begin=0;int end=list.size()-1;while (begin<end){if (Objects.equals(list.get(begin), list.get(end))){begin++;end--;}else{return false;}}//退出:等于-相遇 小于-错开//如果推出循坏还是没有 不相等,就是对称序列return true;}//二叉树中序遍历public List<Integer> inorderTraversal(TreeNode root) {if (root==null){return new ArrayList<>();}//初始化 listList list=new ArrayList<Integer>();//左子树//问题转化为:遍历以root.left为根的树,并把结果返回,追加到原来的list上if(root.left!=null) {list.addAll(inorderTraversal(root.left));}//当前list.add(root.val);//右子树if(root.right!=null) {list.addAll(inorderTraversal(root.right));}return list;}}
总结
1. todo “得到中序遍历结果 判断是否对称” 为什么不行,思考想问题 怎么想更多测试用例
今天感悟:刷题 不在量,在每一题吃透 ,相关拓展也吃透,相关题型都理解