我正在尝试像Java那样反转二叉树:
class Solution {
TreeNode node;
public TreeNode invertTree(TreeNode root)
{
if(root == null)
return null;
node = root;
node.left = invertTree(root.right);
node.right = invertTree(root.left);
return node;
}
}
但是在运行此代码时,我收到了stackoverflow错误。谁能解释为什么?
public TreeNode invertTree(TreeNode root) {
if (root == null){
return root;
}
TreeNode right = invertTree(root.right);
TreeNode left = invertTree(root.left);
root.left = right;
root.right = left;
return root;
}
[根为r的树的逆,子树为左右,是根为r的树,其右子树是左的逆,而左子树是右的逆。