Они не упомянули вопрос, который я задаю. Только ключевое слово из этих вопросов соответствует моему вопросу.
Я тестирую код и получаю разные результаты. Я понятия не имею, что результаты разные. Оригинальный вопрос здесь https://www.geeksforgeeks.org/convert-a-given-binary-tree-to-doubly-linked-list-set-2/
Ответ правильный, если я напишу код, подобный этому;
// Start from the rightmost node, traverse
// back using left pointers. While traversing,
// change right pointer of nodes
while (root != null && root.left != null)
{
node left = root.left;
left.right = root;
root = root.left;
}
Ответ неверный. Я могу распечатать только первый узел. Это означает, что я не изменил правильный указатель успешно. Я не знаю почему.
// Start from the rightmost node, traverse
// back using left pointers. While traversing,
// change right pointer of nodes
node help = null;
while (root != null && root.left != null)
{
help = root;
root.right = help;
//node left = root.left;
//left.right = root;
root = root.left;
}
правильный ответ может распечатать все данные в дереве.
неправильный может указывать только на первый элемент, корень в дереве.