题目如下:
判断一个节点是否在一颗子树中
思路:
(使用java语言)递归实现——>
(1)首先根节点入栈;判断node和目标节点值goal是否相等;
(2)node和goal不相等,递归node的左子节点;判断其和goal是否相等;
(3)如果不相等,递归node的右子节点;判断其和goal是否相等;
(4)如果还是不相等则继续执行(2)、(3)步骤,直到找到和goal相等的节点
(5)如果所有节点都遍历完之后还是没找到,则返回false
思路图示:
代码如下:
public class BinaryTree {
//判断一个节点是否在一颗子树中
public boolean exist(TreeNode node,int goal) {
//第一次的时候传入根节点和目标节点
if(node==null) {
//根节点为空,树不存在
return false;
}
if(goal==node.getValue()) {
//目标节点和当前节点的值相同,则表明节点在树中
return true;
}
return exist(node.getLeft()