使用全局变量反转二叉树时出现堆栈溢出错误

问题描述 投票:0回答:1

我正在尝试像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错误。谁能解释为什么?

java tree stack-overflow
1个回答
0
投票
 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的树,其右子树是左的逆,而左子树是右的逆。

© www.soinside.com 2019 - 2024. All rights reserved.