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

广州网站推广解决方案怎么做前端网站

广州网站推广解决方案,怎么做前端网站,肇庆网站快速排名提升,创意网站 模板二叉搜索树的最近公共祖先(Java) 重要结论:第一次遇到cur节点是数值在[q, p]区间中,那么cur就是q和p的最近公共祖先(闭区间是因为公共祖先可以是本身) (如果知道这个结论:本题就类似于给定二叉搜索树(BST&…

二叉搜索树的最近公共祖先(Java)

重要结论:第一次遇到cur节点是数值在[q, p]区间中,那么cur就是q和p的最近公共祖先(闭区间是因为公共祖先可以是本身)
(如果知道这个结论:本题就类似于给定二叉搜索树(BST)的根节点 root 和一个整数值 val—第700题)

/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode(int x) { val = x; }* }*/class Solution {public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {if(root == null){return null;}if(root.val >= p.val && root.val <= q.val || (root.val >= q.val && root.val <= p.val)){return root;}else if(root.val > p.val && root.val > q.val){return lowestCommonAncestor(root.left, p, q);}else{return lowestCommonAncestor(root.right, p, q); //找到就是root,没找到就是null}}
}

删除二叉搜索树中的节点(Java)

大体框架:寻找是否有该节点。
细节:找到该节点后判断以下几种情况:

  • 左右孩子都为空:直接删除节点
  • 其无左子:其右子顶替其位置,删除了该节点;
  • 其无右子:其左子顶替其位置,删除了该节点;
  • 其左右子节点都有:其左子树转移到其右子树的最左节点的左子树上,然后右子树顶替其位置,由此删除了该节点。
/*** 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 {public TreeNode deleteNode(TreeNode root, int key) { if(root == null){return null;}if(root.val == key){if(root.left == null && root.right == null){ //1:都为空直接删除return null;}else if(root.left == null || root.right == null){ // 2. 一侧为空,返回另一侧return root.left == null ? root.right : root.left;}else{ //3:左右两侧都有值TreeNode node = root.right;while(node.left != null){node = node.left; //不断寻找最左节点}node.left = root.left; // 把左节点放在右节点的最左节点的左边;return root.right;}}else if(root.val > key){root.left = deleteNode(root.left, key);}else{root.right = deleteNode(root.right, key);}return root;}
}

修剪二叉搜索树(Java)

  • 若 root.val 小于边界值 low,则 root 的左子树必然均小于边界值,我们递归处理 root.right 即可;
  • 若 root.val 大于边界值 high,则 root 的右子树必然均大于边界值,我们递归处理 root.left 即可;
  • 若 root.val 符合要求,则 root 可被保留,递归处理其左右节点并重新赋值即可。
/*** 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 {public TreeNode trimBST(TreeNode root, int low, int high) {if(root == null){return null;}if(root.val < low){return  trimBST(root.right, low, high);}else if(root.val > high){return trimBST(root.left, low, high);}else{root.left = trimBST(root.left, low, high);root.right = trimBST(root.right, low, high);return root;}}
}

写博客的目的是每日督促并记录刷题,也欢迎大家批评指正~(day22)

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

相关文章:

  • 网站如何让百度抓取wordpress主体开源多少钱
  • 512内存做网站锒川市住房和城乡建设局网站公告
  • 广阳区建设局网站厦门市网站建设局
  • 长春企业公司网站建设湛江做网站哪家专业
  • 个人网站做app上传个人企业信息查询
  • 网站管理制度建设的必要性网站建设经费立项报告
  • 艺术网站定制查域名备案信息
  • 海珠区建设和水务局网站网络推广宣传方式
  • 开发网站用什么工具做设计产品如何做网络推广
  • 浙江省网站集约化建设做网站的是什么工种
  • 做手机网站多少钱可以做pos机的网站
  • 徐州网站营销旅游网站开发研究现状
  • 贵州网站建设套餐网站建设需要哪些材料
  • 微信辅助做单网站数据服务网站开发
  • 网站中的文字滑动怎么做专业seo网站
  • 上海网站开发与设计域名服务器有哪几种
  • 傻瓜式做网站程序网站建设连接
  • 铜川公司做网站女性时尚网站模板
  • 网站建设后期帮人推广注册app的平台
  • 新网站如何做友情链接陕西省建设网三类人员继续教育
  • 网站开发有多少种语言重庆市门户网站制作
  • wordpress多站点无法访问wordpress获取tag
  • vue.js合作做网站么小网站怎么建设
  • 邯郸网站建设提供商国内免费wordpress
  • 网站模板如何修改江西企业 网站建设
  • 定制app网站网络广告策划的主要内容
  • app软件开发平台有哪些seo网络优化招聘
  • 企业网站建设的几种形式自行车网站模板
  • 支持html5的网站武义网站建设
  • vue前后端不分离访问地址提升seo排名平台