public class TreeSearch {
//查看root是否有val这个值
BinaryTree.Node search1(BinaryTree.Node root, int val) {
if (root == null) {
return null;
}
if (root.val == val) {
return root;
}
BinaryTree.Node left = search1(root.left, val);
if (left != null) {
return left;
}
return search1(root.right, val);
}
//查看是否有val值,有返回true
boolean search2(BinaryTree.Node root, int val) {
if (root == null) {
return false;
}
if (root.val == val) {
return true;
}
if (search2(root.left, val)) {
return true;
}
return search2(root.right, val);
}
boolean isSameTree(BinaryTree.Node root, BinaryTree.Node subRoot) {
return true;
}
//查看root是否含有subroot这棵子树
boolean search3(BinaryTree.Node root, BinaryTree.Node subRoot) {
if (root == null) {
return false;
}
if (isSameTree(root, subRoot)) {
return true;
}
if (search3(root.left, subRoot)) {
return true;
}
return search3(root.right, subRoot);
}
//查看rot这棵树是否有node这个结点
boolean search4(BinaryTree.Node root, BinaryTree.Node node) {
if (root == null) {
return false;
}
if (root == node) {
return true;
}
if (search4(root.left, node)) {
return true;
}
return search4(root.right, node);
}
}
二叉树的四种查找
最新推荐文章于 2024-08-16 21:27:26 发布