Java数据结构:求二叉树一个结点的父母结点

类似于二叉树的遍历,引用结点的左右结点与待查结点进行比较

    public BinaryNode<T> getParent(BinaryNode<T> node)
    {
        if (root==null || node==null || node==root)
            return null; 
        return getParent(root, node);
    }
    //在以p为根的子树中查找并返回node结点的父母结点
    public BinaryNode<T> getParent(BinaryNode<T> p, BinaryNode<T> node)
    {
        if (p==null)
            return null;
        if (p.left==node || p.right==node) 
            return p;
        BinaryNode<T> find = getParent(p.left, node);
        if (find==null)
            find = getParent(p.right, node);
        return find;
    }

猜你喜欢

转载自blog.csdn.net/qq_42192693/article/details/85446008