二叉树递归遍历坑点
曾几何时,一直以为这样的手法是对的。
以前序遍历为例:
TreeNode* PreTree(TreeNode* root) {
while(root-val != nullptr) {
cout << root->val;
PreTree(root->left);
PreTree(root->right);
}
return root;
}
上述方法会导致死循环,因为遍历到最左下节点时,root一直代表的该节点,所以while一直成立。
应该把while写成if
史称失智的一天

浙公网安备 33010602011771号