public class Solution {
public TreeNode invertTree(TreeNode root) {
if(root == null) return null;
TreeNode tmp = root.left;
root.left = invertTree(root.right);
root.right = invertTree(tmp);
return root;
}
}
上記の解決策はなぜ機能するのか分かりませんが、バイナリツリーを逆転しようとすると、新しい一時的なTreeNodeを作成する必要がある理由を理解できません。
public class Solution {
public TreeNode invertTree(TreeNode root) {
if(root == null) return null;
root.left = invertTree(root.right);
root.right = invertTree(root.left);
return root;
}
}
誰かが、プログラムが動作するために一時的なTreeNodeが必要な理由を詳しく説明してください。
私の悪いとありがとう! – user6807001