类似于二叉树的遍历,引用结点的左右结点与待查结点进行比较
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;
}