⭐北邮复试刷题LCR 052. 递增顺序搜索树__DFS (力扣119经典题变种挑战)

这篇具有很好参考价值的文章主要介绍了⭐北邮复试刷题LCR 052. 递增顺序搜索树__DFS (力扣119经典题变种挑战)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

LCR 052. 递增顺序搜索树

给你一棵二叉搜索树,请 按中序遍历 将其重新排列为一棵递增顺序搜索树,使树中最左边的节点成为树的根节点,并且每个节点没有左子节点,只有一个右子节点。

示例 1:
输入:root = [5,3,6,2,4,null,8,1,null,null,null,7,9]
输出:[1,null,2,null,3,null,4,null,5,null,6,null,7,null,8,null,9]

示例 2:
输入:root = [5,1,7]
输出:[1,null,5,null,7]

提示:
树中节点数的取值范围是 [1, 100]
0 <= Node.val <= 1000

题解:

本题对所给二叉树中序遍历即可,即按照左根右,当访问根时,创建节点即可;
注意因为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 {
    TreeNode res = null;
    TreeNode index = null;

    public TreeNode increasingBST(TreeNode root) {
        dfs(root);
        return res;
    }

    public void dfs(TreeNode node){
        if(node.left != null)
            dfs(node.left);
        if(res == null){
            res = new TreeNode();
            res.val = node.val;
            index = res;
        }
        else{
            TreeNode temp = new TreeNode();
            temp.val = node.val;
            index.right = temp;
            index = index.right;
        }
        if(node.right != null)
            dfs(node.right);
    }
}

结果:

⭐北邮复试刷题LCR 052. 递增顺序搜索树__DFS (力扣119经典题变种挑战),Leetcode每日刷题,# DFS与递归及回溯,# 树,深度优先,leetcode,算法,北邮,Java,树文章来源地址https://www.toymoban.com/news/detail-836349.html

到了这里,关于⭐北邮复试刷题LCR 052. 递增顺序搜索树__DFS (力扣119经典题变种挑战)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 顺序表、链表刷题指南(力扣OJ)

    目录 前言 题目一:删除有序数组中的重复项 思路: 题解: 题目二:合并两个有序数组 思路: 分析: 题解: 题目三:反转链表 思路: 分析: 题解:  题目四:移除链表元素 思路一: 分析: 题解: 思路二: 分析: 题解: 总结         无论是面试准备还是日常编码

    2024年02月14日
    浏览(29)
  • 【洛谷刷题】蓝桥杯专题突破-深度优先搜索-dfs(5)

    目录 写在前面: 题目:P2036 [COCI2008-2009#2] PERKET - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题目描述: 输入格式: 输出格式: 输入样例: 输出样例: 解题思路: 代码: AC !!!!!!!!!! 写在最后: 怎么样才能学好一个算法? 我个人认为,系统性的刷题尤为重要,

    2023年04月13日
    浏览(43)
  • 【洛谷刷题】蓝桥杯专题突破-深度优先搜索-dfs(1)

    目录 写在前面: 题目:P1036 [NOIP2002 普及组] 选数 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题目描述: 输入格式: 输出格式: 输入样例: 输出样例: 解题思路: 代码: AC !!!!!!!!!! 写在最后: 怎么样才能学好一个算法? 我个人认为,系统性的刷题尤为重要

    2024年01月23日
    浏览(30)
  • 【洛谷刷题】蓝桥杯专题突破-深度优先搜索-dfs(4)

    目录 写在前面: 题目:P1149 [NOIP2008 提高组] 火柴棒等式 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题目描述: 输入格式: 输出格式: 输入样例: 输出样例: 解题思路: 代码: AC !!!!!!!!!! 写在最后: 怎么样才能学好一个算法? 我个人认为,系统性的刷题尤

    2023年04月08日
    浏览(33)
  • 【AcWing刷题】蓝桥杯专题突破-深度优先搜索-dfs(8)

    目录 写在前面: 题目:1114. 棋盘问题 - AcWing题库 题目描述: 输入格式: 输出格式: 数据范围: 输入样例: 输出样例: 解题思路: 代码: AC !!!!!!!!!! 写在最后: 怎么样才能学好一个算法? 我个人认为,系统性的刷题尤为重要, 所以,为了学好深度优先搜

    2023年04月09日
    浏览(32)
  • 趣说数据结构(练习2) —— 顺序表/链表力扣刷题(中等难度)

    力扣原题:https://leetcode.cn/problems/reverse-linked-list-ii/ 题目描述 给你单链表的头指针 head 和两个整数 left 和 right ,其中 left = right 。请你反转从位置 left 到位置 right 的链表节点,返回 反转后的链表 。 示例 1 输入:head = [1,2,3,4,5], left = 2, right = 4 输出:[1,4,3,2,5] 示例 2 输入:h

    2024年02月01日
    浏览(27)
  • #力扣:LCR 182. 动态口令@FDDLC

    LCR 182. 动态口令 一、Java 二、C++ 三、Python 四、JavaScript 五、Go

    2024年02月07日
    浏览(67)
  • 力扣LCR 166. 珠宝的最高价值(java 动态规划)

    Problem: LCR 166. 珠宝的最高价值 改题目与本站64题实质上是一样的,该题目在64题的基础上将求取 最小路径和 改成了求取 最大路径和 。具体实现思路如下: 1.定义一个int类型的二维数组dp大小为给定矩阵frame的行数与列数。该数组用于记录每个当前阶段的 最大路径和 (也是本

    2024年02月01日
    浏览(33)
  • 【LeetCode力扣】LCR170 使用归并排序的思想解决逆序对问题(详细图解)

    目录 1、题目介绍 2、解题思路 2.1、暴力破解法 2.2、归并排序思想 2.2.1、画图详细讲解 2.2.2、归并排序解决逆序对的代码实现 首先阅读题目可以得出要点,即当 前数 大于 后数 时则当作一个【逆序对】,而题目是要求在一个数组中计算一共存在多少个这样的逆序对并输出结

    2024年02月08日
    浏览(32)
  • 最长递增子序列——力扣300

    2024年02月12日
    浏览(25)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包