本文主要是介绍力扣226.翻转二叉树101.对称二叉树,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
解决二叉树的问题,经常要习惯从递归角度思考
左子树/右子树是否具备某属性、是否属于什么类型(和题目要求的判断当前树是否xxx一样);
对左/右子树进行什么操作(和题目要求的对当前树的操作一样)。
226.翻转二叉树
class Solution {public TreeNode invertTree(TreeNode root) {if (root == null) {return null;}TreeNode left = invertTree(root.left);TreeNode right = invertTree(root.right);root.left = right;root.right = left;return root;}
}
101.对称二叉树
class Solution {public boolean isSymmetric(TreeNode root) {//左节点和右节点是否相等//左节点的左子树和右节点的右子树是否对称//左节点的右子树和右节点的左子树是否对称return check(root.left,root.right);}public boolean check(TreeNode root1,TreeNode root2){if (root1==null && root2==null) return true;if (root1==null || root2==null) return false;if (root1.val!=root2.val) return false;return check(root1.left,root2.right) && check(root1.right,root2.left);}
}
这篇关于力扣226.翻转二叉树101.对称二叉树的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!