在二叉树中插入节点

时间:2011-11-24 14:06:56

标签: java

这是我的方法到目前为止它可能是错误的,但我需要在二叉树中插入一个节点。

public Node insert(Node node, int data)
{
    if (root = null)
     {
        root = insert(data);
     }
     else if (data < node.data)
     {
        node.left = insert(data);
     }
     else if (data > node.data)
     {
        node.right = insert(data);   
     } 
}

帮助?我正在使用bluej

2 个答案:

答案 0 :(得分:1)

查看binary search tree上的维基百科页面。 (由于您的节点是有序的,因此您实际上是在实现二进制搜索树)。

给出了每个常见操作 - 例如insertion。甚至提供并解释了Java代码。

答案 1 :(得分:0)

我会这样做:

public void insert(Node node, int data)
{
    if (node == null)
    {
        node = new Node(data, null, null); // create a new leaf node with the data.
    }
    else if (data < node.data)
    {
       insert(node.left, data);
    }
    else if (data > node.data)
    {
       insert(node.right, data);   
    } 
}

我认为无需返回任何内容,因为您的树已经连接,该功能只会在正确的位置添加一个新节点。请致电:

insert(root, data);