java 二叉树(六)查找二叉树一个节点的双亲节点

来源:互联网 发布:数控铣床编程小酒杯 编辑:程序博客网 时间:2024/04/29 11:07

原理:递归查找,使用查找节点的函数找到在树中的值,然后当当前节点的左孩子的指向或右孩子的指向为查找到的节点时,返回当前节点即可

比如: node.getLeftChild()==findNode()

那么其findNode()的父节点即为:node.

public Node parent(Object obj){Node temp=parent(root, obj);return temp;}public Node parent(Node node, Object findnode){if(node==null){return null;}if((node.getLeftChild()!=null&&node.getLeftChild().data.value==findnode.value)||(node.getRightChild()!=null&&node.getRightChild().data.value==findnode.value)){//如果找到返回双亲节点//这里需要判断node的左或右孩子是否为空的条件,否则一旦node的左孩子或右孩子为空(即:找不到)会报空指针的错误return node;}//在左子树中查找 , 如果左子树中没有去右子树中查找Node N;if((N=parent(node.getLeftChild(),findnode))!=null){return N;}else{return parent(node.getRightChild(),findnode);}}


0 0
原创粉丝点击