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

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

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

 

你可能感兴趣的:(数据结构/算法)