当前位置: 首页 > news >正文

无锡网络公司无锡网站推广广州免费孕检

无锡网络公司无锡网站推广,广州免费孕检,雅虎搜索,广东省公路建设公司官方网站目录 深度优先算法(Depth-First Search,DFS) LeetCode之路——102. 二叉树的层序遍历 分析 深度优先算法(Depth-First Search,DFS) DFS是一种用于遍历或搜索树状数据结构的算法,其中它首先探…

目录

深度优先算法(Depth-First Search,DFS)

LeetCode之路——102. 二叉树的层序遍历

分析



深度优先算法(Depth-First Search,DFS)

DFS是一种用于遍历或搜索树状数据结构的算法,其中它首先探索树的深度,然后回溯并继续探索其他分支。在二叉树中,深度优先算法可以通过递归或使用栈来实现。有三种常见的深度优先遍历方式:前序遍历、中序遍历和后序遍历,每种方式都对节点的访问顺序略有不同。

以下是深度优先遍历的Java代码示例,包括前序遍历、中序遍历和后序遍历:

class TreeNode {int data;TreeNode left;TreeNode right;
​public TreeNode(int data) {this.data = data;}
}
​
// 前序遍历(Preorder DFS)
void preorderDFS(TreeNode node) {if (node == null) return;System.out.print(node.data + " "); // 先访问根节点preorderDFS(node.left); // 遍历左子树preorderDFS(node.right); // 遍历右子树
}
​
// 中序遍历(Inorder DFS)
void inorderDFS(TreeNode node) {if (node == null) return;inorderDFS(node.left); // 遍历左子树System.out.print(node.data + " "); // 访问根节点inorderDFS(node.right); // 遍历右子树
}
​
// 后序遍历(Postorder DFS)
void postorderDFS(TreeNode node) {if (node == null) return;postorderDFS(node.left); // 遍历左子树postorderDFS(node.right); // 遍历右子树System.out.print(node.data + " "); // 最后访问根节点
}
​

LeetCode之路——102. 二叉树的层序遍历

给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。

示例 1:

img

输入:root = [3,9,20,null,null,15,7]
输出:[[3],[9,20],[15,7]]

示例 2:

输入:root = [1]
输出:[[1]]

示例 3:

输入:root = []
输出:[]

提示:

  • 树中节点数目在范围 [0, 2000]

  • -1000 <= Node.val <= 1000

分析

逐层地,从左到右访问所有节点,这种情景叫做树的层序遍历。匹配的算法是DFS(Depth-first search)和BFS(Breadth-first search)。

// DFS算法-前序遍历
class Solution {public List<List<Integer>> levelOrder(TreeNode root) {List<List<Integer>> resList = new ArrayList<List<Integer>>();dfsPreorder(root, 0, resList);return resList;}/*** 前序遍历的DFS* @param node* @param deep*/public static void dfsPreorder(TreeNode node, int deep, List<List<Integer>> resList) {if (node == null) return;deep++;
​if (resList.size() < deep) {// 用resList的索引标记层数List<Integer> list = new ArrayList<>();resList.add(list);}resList.get(deep - 1).add(node.val);
​//左侧子节点遍历dfsPreorder(node.left, deep, resList);//右侧子节点遍历dfsPreorder(node.right, deep, resList);}}
  • 时间复杂度:O(n)

  • 空间复杂度:O(n)

http://www.yayakq.cn/news/427164/

相关文章:

  • 网站建设去哪里找客户合肥广告公司
  • 网站案例 网站建设wordpress开发的网站有哪些
  • 如何给网站做右侧导航栏wordpress登陆才可以看到
  • 做空eth网站成都微信小程序开发平台
  • 礼品网站制作杭州微网站建设公司
  • 班级的网站设计怎么做留言板网页设计代码
  • 网站需求分析与设计方案重庆火灾新闻最新消息
  • 网站建设怎么建好怎么用vps的linux做网站
  • 网站建设整改报告做销售用什么网站
  • 一般做网站个人网页首页模板
  • 网站设计模式天津南开做网站
  • 贵阳做网站开发科技有限公司wordpress文章微信分享
  • 网站文章不收录怎么做网贷之家网站建设
  • 自己做的网站可以查看谁访问吗清镇市最新消息
  • 学校网站备案怎么做中国专业室内设计公司排名
  • 用vs2010做免费网站模板wordpress 图片延迟加载
  • 安康鼎盛网站建设中国建设银行官网首页登录入口
  • 长安网站建设好吗git wordpress中文免费主题
  • 中国空间站图片高清中国seo网站
  • 通辽网站网站建设农业信息网站建设
  • wordpress主题开发班塘沽网站优化
  • 局域网内服务器做网站网站建设定制开发网站设计开发
  • 怎么从零开始做网站广东做seo的公司
  • 临淄网站设计免费游戏网站建设游戏后台
  • 现在有没有免费的网站浙江工业设计公司
  • 自己能自学网站建设吗优化设计七年级下册数学答案
  • 网站的域名解析怎么做中国建设银行网站的机构
  • 百度网站主要提供的服务建筑电气与智能化
  • 黄埔网站建设wordpress edd 会员
  • 网站seo分析案例自己建立网站