如何在Java

时间:2019-05-12 03:43:14

标签: java tree converters

他们没有提到我问的问题。这些问题中只有关键字与我的问题匹配。

我测试代码并获得不同的结果。我不知道结果是不同的。原始问题在这里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; 
} 

正确答案可以打印出树中的所有数据。 错误的对象只能指出第一个元素,即树的根。

1 个答案:

答案 0 :(得分:0)

此行

root.right = help;

应该是

root.left.right = help;