226. 翻转二叉树
给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。
这道题莫名其妙做出来了,看评论好多人都是莫名其妙做出来的。就是连续做了几道题有感觉了。很难解释。
我的做法
后序递归
class Solution {
public TreeNode invertTree(TreeNode root) {
invert(root);
return root;
}
public void invert(TreeNode root) {
if(root == null){
return ;
}
invert(root.left);
invert(root.right);
TreeNode temp =new TreeNode();
temp = root.left;
root.left = root.right;
root.right=temp;
}
}
官方解法
这种一边赋值一边还在返回的我理解起来真有点困难,再找找感觉吧
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;
}
}
作者:力扣官方题解
链接:https://leetcode.cn/problems/invert-binary-tree/solutions/415160/fan-zhuan-er-cha-shu-by-leetcode-solution/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。