Eh bien, cette question vient de LeetCode. La question est de trouver le nœud le plus à gauche du dernier niveau de l'arbre. Je l'ai essayé en utilisant une simple traversée d'ordre de niveau en gardant un pointeur supplémentaire pour suivre le premier élément de chaque niveau (ce qui sera bien sûr l'élément le plus à gauche). Alors que le code fonctionne parfaitement bien sur ma machine. Il montre une sortie différente dans le juge leetcode. Voici mon codeBinary Tree Level Ordre Traversal LeetCode
int findBottomLeftValue(TreeNode* root) {
queue<TreeNode*>q;
q.push(root);
q.push(NULL);
TreeNode*first;
while(!q.empty())
{
TreeNode*temp = q.front();
q.pop();
if(temp==NULL)
{
if(q.front()!=NULL)
first = q.front();
if(!q.empty())
q.push(NULL);
}
else
{
if(temp->left)
{
q.push(temp->left);
}
if(temp->right)
{
q.push(temp->right);
}
}
}
return first->val;
}
Pour une analyse détaillée de la visite de question https://leetcode.com/problems/find-bottom-left-tree-value/#/description
Pour le cas de test donné [2,1,3] mon code donne la sortie 0 alors que la sortie est correcte 1.
Toute aide est appréciée.