二叉树递归遍历坑点

曾几何时,一直以为这样的手法是对的。
以前序遍历为例:

TreeNode* PreTree(TreeNode* root) {
        while(root-val != nullptr) {
            cout << root->val;
            PreTree(root->left);
            PreTree(root->right);
        }
        return root;
    }

上述方法会导致死循环,因为遍历到最左下节点时,root一直代表的该节点,所以while一直成立。

应该把while写成if

史称失智的一天

posted @ 2021-01-22 09:44  Daybreaking  阅读(90)  评论(0)    收藏  举报