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

算法专题十二:二叉树的深搜

计算布尔二叉树的值

2331. 计算布尔二叉树的值 - 力扣(LeetCode)

class Solution {public boolean evaluateTree(TreeNode root) {if(root.left==null || root.right==null){return root.val==0?false:true;}boolean left=evaluateTree(root.left);boolean right=evaluateTree(root.right);return root.val==2?left|right:left&right;}
}

求根节点到叶节点的数字之和

129. 求根节点到叶节点数字之和 - 力扣(LeetCode)

class Solution {public int sumNumbers(TreeNode root) {return dfs(root,0);}public int dfs(TreeNode root,int sum) {sum=sum*10+root.val;if(root.left==null && root.right==null){return sum;}int ret=0;if(root.left!=null){ret+=dfs(root.left,sum);}if(root.right!=null){ret+=dfs(root.right,sum);}return ret;}
}

二叉树剪枝

814. 二叉树剪枝 - 力扣(LeetCode)

class Solution {public TreeNode pruneTree(TreeNode root) {if(root==null){return null;}root.left=pruneTree(root.left);root.right=pruneTree(root.right);if(root.left==null && root.right==null && root.val==0){return null;}return root;}
}

验证二叉搜索树

98. 验证二叉搜索树 - 力扣(LeetCode)

/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode() {}*     TreeNode(int val) { this.val = val; }*     TreeNode(int val, TreeNode left, TreeNode right) {*         this.val = val;*         this.left = left;*         this.right = right;*     }* }*/
class Solution {long prev=Long.MIN_VALUE;public boolean isValidBST(TreeNode root) {if(root==null){return true;}boolean left=isValidBST(root.left);//剪枝操作if(left==false){return false;}boolean cur=false;if(root.val>prev){cur= true;}//剪枝操作if(cur==false){return false;}prev=root.val;boolean right=isValidBST(root.right);if(root.val>prev){cur= true;}return cur && left && right ;}
}

二叉搜索树中第K小的元素

class Solution {int count;int ret;public int kthSmallest(TreeNode root, int k) {count=k;dfs(root);return ret;}public void dfs(TreeNode root){if(root==null ||count ==0){return ;}dfs(root.left);count--;if(count==0){ret=root.val;}if(count==0){return ;}dfs(root.right);}
}

二叉树的所有路径

257. 二叉树的所有路径 - 力扣(LeetCode)

class Solution {List<String> ret;public List<String> binaryTreePaths(TreeNode root) {ret=new ArrayList();dfs(root,new StringBuffer());return ret;}public void dfs(TreeNode root,StringBuffer path1){StringBuffer path=new StringBuffer(path1);if(root==null){return ;}path.append(Integer.toString(root.val));if(root.left==null && root.right==null){ret.add(path.toString());}path.append("->");if(root.left!=null){dfs(root.left,path);}if(root.right!=null){dfs(root.right,path);}}
}

http://www.dtcms.com/a/491017.html

相关文章:

  • 建设旅游信息网站的好处职业学院网站建设
  • 【vue】设置时间格式
  • 泰安网站建设方案为网站做一则广告
  • 23种设计模式——状态模式(State Pattern)
  • 管理系统布局框架中都包含哪些要素?导航、面包屑、tab等
  • 制作企业网站的app如何做网校网站
  • 卷积值提取
  • [Android] Alarm Clock Pro 11.1.0一款经典简约个性的时钟
  • 【机器学习算法篇】K-近邻算法
  • K8S高可用集群-二进制部署 + nginx-proxy静态Pod版本
  • 使用Open CASCADE和BRepOffsetAPI_MakePipeShell创建螺旋槽钻头三维模型
  • 邯郸网站制作多少钱网站如何收录
  • 如何区分Android、Android Automotive、Android Auto
  • 企业融资方式有哪几种淄博网站seo价格
  • python - 第五天
  • 凡科网的网站建设怎么做网站 建设 公司
  • 透过浏览器原理学习前端三剑客:HTML、CSS与JavaScript
  • 镇江市网站建设江西省建设厅教育网站上查询
  • dede网站怎么设置首页相亲网站透露自己做理财的女生
  • Docker在已经构建好的镜像中安装包
  • 智慧物流赛项竞赛内容与技能要求深度解析
  • GPU散热革命:NVIDIA微通道液冷板(MLCP)技术深度解析
  • Docker安装部署MySQL一主二从集群
  • 搭建网站服务器多少钱网站在建设中是什么意思
  • Java 11对集合类做了哪些增强?
  • SQLSugar框架数据库优先
  • 工程建设教育网站北京网站建设cnevo
  • Vector数据库性能大比武:Pinecone、Weaviate、Chroma速度与准确率实测
  • 天津老区建设促进会网站移动开发的现状和前景
  • 笔试强训(六)