-
构建二叉树并进行深度优先搜索:
深度优先搜索的原理其实就是利用先序遍历的原理
eg:
public class TreeNode {
public int val;
public TreeNode left;
public TreeNode right;
public TreeNode(int val, TreeNode left, TreeNode right) {
this.val = val;
this.left = left;
this.right = right;
}
public TreeNode(int val) {
this.val = val;
}
}
public static boolean dfs(TreeNode root, int target){
if(root == null) return false;
if(root.val == target) return true;
return dfs(root.left,target) || dfs(root.right,target);
}
public class Main {
public static void main(String[] args) {
TreeNode node1 = new TreeNode(1);
TreeNode node2 = new TreeNode(2);
TreeNode node3 = new TreeNode(3);
TreeNode node4 = new TreeNode(4);
TreeNode node5 = new TreeNode(5);
TreeNode node6 = new TreeNode(6);
TreeNode node7 = new TreeNode(7);
node1.left = node2;
node1.right = node3;
node2.left = node4;
node2.right = node5;
node3.right = node6;
node4.right = node7;
System.out.println(dfs(node1,4));
System.out.println(dfs(node1,8));
}