构建二叉树并进行深度优先搜索:
深度优先搜索的原理其实就是利用先序遍历的原理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));//trueSystem.out.println(dfs(node1,8));//fasle}
如果觉得《二叉树的深度优先搜索》对你有帮助,请点赞、收藏,并留下你的观点哦!