【算法第十五天7.29】513.找树左下角的值 112. 路径总和 106.从中序与后序遍历序列构造二叉树

这篇具有很好参考价值的文章主要介绍了【算法第十五天7.29】513.找树左下角的值 112. 路径总和 106.从中序与后序遍历序列构造二叉树。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

链接力扣513-找树左下角的值

思路

class Solution {
    public int findBottomLeftValue(TreeNode root) {
        Queue<TreeNode> queue = new LinkedList<>();
        queue.offer(root);
        int res = 0;
        while(!queue.isEmpty()){
            int size = queue.size();
            for(int i = 0; i < size; i++){
                TreeNode node = queue.poll();
                if(i == 0) res = node.val;
                if(node.left != null) queue.offer(node.left);
                if(node.right != null) queue.offer(node.right);
            }
        }
        return res;
    }
}

链接力扣112-路径总和

思路

class Solution {
    public boolean hasPathSum(TreeNode root, int targetSum) {
        // 用前序遍历
        if(root == null) return false;
        if(root.left == null && root.right == null) return targetSum == root.val;
        // 求两侧分支的路径和
        return hasPathSum(root.left, targetSum - root.val) || hasPathSum(root.right, targetSum - root.val);
    }
}

链接力扣106-从中序与后序遍历序列构造二叉树

思路文章来源地址https://www.toymoban.com/news/detail-624555.html

//  重点是:左闭右开的原则,以及子树长度
class Solution {
    Map<Integer,Integer> map;
    public TreeNode buildTree(int[] inorder, int[] postorder) {
        map = new HashMap<>();
        for(int i = 0; i < inorder.length; i++){
            map.put(inorder[i],i);
        }
        return 	getRoot(inorder,0,inorder.length,postorder,0,postorder.length);
    }
    public TreeNode getRoot(int[] inorder, int inStart,int inEnd,int[] postorder,int postStart,int postEnd){
        // 参数里的范围都是前闭后开,不是左闭右开,则无法返回树
        if(inStart >= inEnd || postStart >= postEnd) return null;
        // 获取中序中的根节点值;
        int index = map.get(postorder[postEnd - 1]);
        TreeNode root = new TreeNode(inorder[index]);
        // 求出左树的长度
        int lenOfLeft = index - inStart;
        // 根据左闭右开,来建立左子树、右子树
        root.left = getRoot(inorder,inStart,index, postorder,postStart,postStart + lenOfLeft);
        root.right = getRoot(inorder,index + 1, inEnd, postorder,postStart + lenOfLeft,postEnd - 1);
        // root.right = getRoot(inorder,index + 1, inEnd, postorder,postStart + index,postEnd - 1);
        return root;
    }
}

到了这里,关于【算法第十五天7.29】513.找树左下角的值 112. 路径总和 106.从中序与后序遍历序列构造二叉树的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 算法刷题Day18 找树左下角的值+路径总和+从中序与后序遍历构造二叉树

    一眼层序遍历 层序遍历 回溯的方法 《剑指Offer》有“从前序与中序遍历序列构造二叉树”的讲解,这里把前序换成后序,应该是差不多的思路

    2024年02月16日
    浏览(43)
  • 算法训练day18Leetcode找树左下角的值112路径总和106从中序和后续遍历构造二叉树

    找出深度最大的叶子节点,左遍历在前 我们来分析一下题目:在树的最后一行找到最左边的值。 首先要是最后一行,然后是最左边的值。 如果使用递归法,如何判断是最后一行呢,其实就是深度最大的叶子节点一定是最后一行。 如果对二叉树深度和高度还有点疑惑的话,请

    2024年01月21日
    浏览(53)
  • Ubuntu vi 左下角没有提示

    1 打开终端,输入以下命令 sudo gedit /etc/vim/vimrc.tiny  2 进入文件后,修改 set compatible 为set nocompatible,如下所示: \\\" Vim configuration file, in effect when invoked as \\\"vi\\\". The aim of this \\\" configuration file is to provide a Vim environment as compatible with the \\\" original vi as possible. Note that ~/.vimrc configurati

    2024年02月12日
    浏览(39)
  • 解决SVN左下角图标不显示(图文详解)

    首先解释以下为什么会发生这样的现象: 因为WindowsExporerShell所支持的Overlay Icon最多十五个,当前面十五个被其他软件或者windows系统自身占用,svn就被顶掉从而无法使用,结果就是图标消失。 解决方法就是将注册表中svn图标重命名,使其在前十五个中。下面是详细步骤。 按

    2024年02月07日
    浏览(40)
  • 如何打开vscode侧边栏左下角的NPM脚本

    点击进入设置 依次点击用户、扩展、Npm、依次设置三个地方 重启VSCode,点开项目中的package.json,就可以在左下看到NPM脚本

    2024年02月13日
    浏览(46)
  • 如何去除苹果MacOS中快捷方式(替身)左下角的箭头

    要去除桌面替身文件左下角的剪头,您可以使用一个名为“LiteIcon”的免费应用程序。这款应用允许您自定义 Mac 中的各种系统图标,包括替身文件的图标。以下是使用 LiteIcon 去除替身文件剪头的方法: 访问 LiteIcon 官网 并下载最新版本。请确保下载与您的 macOS 版本兼容的

    2024年02月12日
    浏览(32)
  • css实现鼠标滑动左下角弹框带动画效果

    代码 css代码 实现效果    

    2024年02月14日
    浏览(47)
  • idea 左下角的Git(Version Control)中显示Local Changes窗口

    打开Local Changes窗口来查看当前Git仓库的本地变更。 使用快捷键: - Windows: Alt+9 - Mac: Cmd+9 通过以上方式,就可以在IDEA中快速打开Local Changes窗口,查看Git项目的本地变更情况,十分方便。 OK啦,完美解决! 

    2024年02月10日
    浏览(45)
  • Android 13 骁龙相机点击拍照流程分析(一)——点击拍照到更新到左下角缩略图

    由于最近客户定制需要将文件挂载类型修改为sdcardfs,由于修改了文件挂载类型,导致了骁龙相机拍照后不能点击进入相册,故对骁龙相机从点击事件开始进行问题的排查,此处不介绍最终的sdcardfs挂载后的问题解决方案 拍照的流程大概分为几个阶段:打开相机进行预览、点

    2024年02月04日
    浏览(53)
  • 惠普电脑/笔记本电脑为什么左下角会出现 按 ESC 进入启动选项,怎么关闭

    惠普电脑/笔记本电脑为什么左下角会出现 按 ESC 进入启动选项,怎么关闭 查看: 现象提示图片示例: ![v 出现原因 出现这个提示,说明你关闭了 『安全启动』,开启了 『传统模式』 解决方法 首先确定你的硬盘分区是 『MBR 』还是 『GPT』,如果你的『引导盘/系统盘分区』

    2024年02月10日
    浏览(175)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包