[力扣二叉树]本地调试环境指导手册

news2024/11/23 21:32:44

以236. 二叉树的最近公共祖先为例子
本地编译软件为Viusal Studio 2022
在这里插入图片描述

写代码

项目里文件位置

在这里插入图片描述

CreateTree.h

#pragma once
#ifndef CLIONPROJECT_LEETCODECREATETREE_H
#define CLIONPROJECT_LEETCODECREATETREE_H
#include<vector>
#include<queue>
using namespace std;
struct TreeNode 
{
    int val;
    TreeNode* left;
    TreeNode* right;
    TreeNode() : val(0), left(nullptr), right(nullptr) {}
    TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
    TreeNode(int x, TreeNode* left, TreeNode* right) : val(x), left(left), right(right) {}
};

TreeNode* createTree(vector<int> nodes)
{
    if (!nodes.size())
    {
        return nullptr;
    }
    queue<TreeNode*> que;
    TreeNode* root, * node, * cur;
    root = new TreeNode();
    cur = new TreeNode();
    bool is_left = true;
    for (auto val : nodes)
    {
        if (val != INT_MAX)
        {
            node = new TreeNode(val);
        }
        else
        {
            node = nullptr;
        }


        if (que.empty())
        {
            root = node;
            que.push(node);
        }
        else if (is_left)
        {
            cur = que.front();
            que.pop();
            cur->left = node;
            if (&node)
            {
                que.push(node);
            }
            is_left = !is_left;
        }
        else
        {
            cur->right = node;
            if (&node)
            {
                que.push(node);
            }
            is_left = !is_left;
        }
    }
    return root;
}

#endif //CLIONPROJECT_LEETCODECREATETREE_H

236_二叉树的最近公共祖先.cpp

// ConsoleApplication1.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//
#include <iostream>
#include <vector>
#include <unordered_map>
#include <unordered_set>
#include "CreateTree.h"

using namespace std;


class Solution {
public:
    TreeNode* lowestCommonAncestor(TreeNode* root, TreeNode* p, TreeNode* q)
    {
        if (root->val == q->val || root->val == p->val || root == NULL)
        {
            return root;
        }
        TreeNode* left = lowestCommonAncestor(root->left, p, q);
        TreeNode* right = lowestCommonAncestor(root->right, p, q);
        if (left != NULL && right != NULL)
        {
            return root;
        }

        if (left == NULL && right == NULL)
        {
            return right;
        }
        else if (left != NULL && right == NULL)
        {
            return left;
        }
        else // (left == NULL && right == NULL)
        {
            return NULL;
        }
    }
};


int main()
{
    vector<int> input = {3,5,1,6,2,0,8,INT_MAX,INT_MAX,7,4};
    TreeNode* root;
    TreeNode* p = new TreeNode(5);
    TreeNode* q = new TreeNode(1);

    root = createTree(input);
    Solution solution = Solution();
    TreeNode* result = solution.lowestCommonAncestor(root, p, q);
    cout << result->val << endl;

    return 0;
}

FBI WARNING
(1)输入的是一串int,所以把其中null改成正常节点用不到的一个值;
(2)输入的pq是指向实际那个节点的(指向树中那个位置),但是自己创建数有点麻烦,所以我重新创建了一个节点,就必须要在后面遍历逻辑中比较是否找到的时候,改成root->val == p->val,不可以是root == p

接下来就可以愉快的调试了!

参考

力扣二叉树题目本地测试生成测试用例Python\C++

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1828283.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

VMware虚拟机linux无法使用ifconfig的解决方法

在有些linux系统中&#xff0c;输入ifconfig会报错&#xff0c;这是为什么呢&#xff1f; 如果出现 那是说明&#xff0c;你的linux内没有对应的命令。 具体可输入 ls /sbin 查看,发现其中确实没有ifconfig命令 这个解决很简单&#xff0c;在命令行输入 sudo apt-get inst…

关于Mysql 中 Row size too large (> 8126) 错误的解决和理解

提示&#xff1a;啰嗦一嘴 &#xff0c;数据库的任何操作和验证前&#xff0c;一定要记得先备份&#xff01;&#xff01;&#xff01;不会有错&#xff1b; 文章目录 问题发现一、问题导致的可能原因1、页大小2、行格式2.1 compact格式2.2 Redundant格式2.3 Dynamic格式2.4 Co…

【个人云盘连接助手】解决多个用户账号无法同时映射到本地磁盘问题

问题 家里买了个联想个人云盘&#xff0c;但是使用SAMBA映射到windows本地磁盘时&#xff0c;每次只能连接到一个账户上&#xff0c;于是想着写个小工具&#xff0c;方便切换多个用户账户&#xff0c;自动映射到本地磁盘 开发简介 开发语言&#xff1a;python 主要实现功能&…

jeecg在线表单开发模式保存表时报The jdbcUrl is Null, Cannot read database type

报错信息如图 原因分析 使用jeecg框架 数据库使用的是DM数据库&#xff0c;在JeecgSystemApplication中&#xff0c;使用了注解过滤DruidDataSourceAutoConfigure&#xff0c;配置文件使用的是多数据源的方式 会出现这种情况 源码分析 getOnlineDataBaseConfig方法的dataBa…

一些硬件知识(十)

MOS管当开关控制时&#xff0c;一般用PMOS做上管&#xff0c;NMOS做下管 细说MOS管知识-MOS管高端驱动与低端驱动解析和原理及区别_高端功率 mos 管是什么意思-CSDN博客 PMOS管&#xff1a; PMOS管的源极&#xff08;Source&#xff09;通常连接到正电源&#xff08;Vcc&#…

怎么找抖音视频素材?在哪里找爆款热门的素材呢?

在短视频时代&#xff0c;拍摄和分享短视频已经成为一种潮流。但是&#xff0c;许多人都会面临一个问题&#xff0c;那就是——视频素材从哪里来&#xff1f;今天&#xff0c;我将为大家介绍几个优质的网站&#xff0c;让你的视频素材不再愁。 蛙学府&#xff1a;https://www.…

Matlab|基于V图的配电网电动汽车充电站选址定容-可视化

1主要内容 基于粒子群算法的电动汽车充电站和光伏最优选址和定容 关键词&#xff1a;选址定容 电动汽车 充电站位置 仿真平台&#xff1a;MATLAB 主要内容&#xff1a;代码主要做的是一个电动汽车充电站和分布式光伏的选址定容问题&#xff0c;提出了能够计及地理因素和服…

[大模型]ChatTTS Windows安装(CPU)

简介 ChatTTS是专为对话场景设计的语音生成模型&#xff0c;配合生成式大大语言模型&#xff0c;现在人人都可以拥有一个自己的贾维斯。 本文主要运行在windows环境下&#xff0c;目前只能cpu运行 cuda在windows上运行暂时会报错(截止2024-6-16)&#xff0c;目前博主暂无解决方…

芯片验证分享7 —— 代码审查1

大家好&#xff0c;我是谷公子&#xff0c;前几节课给大家分享了如何设计激励&#xff0c;今天我们来如何进行代码审查。 之前讨论的是基于计算机的验证技术&#xff0c;现在讨论非基于计算机的验证过程(即“人工验证”&#xff0c;或代码审查)。代码审查在查找错误方面非常有…

从零到爆款:用ChatGPT写出让人停不下来的短视频文案

一、前言 在自媒体的浪潮中&#xff0c;精彩的短视频文案对内容传播至关重要。众多辅助工具之中&#xff0c;凭借强大的语言处理能力和广泛的应用场景&#xff0c;ChatGPT成为了内容创作者的重要助力。接下来&#xff0c;我将介绍如何借助ChatGPT编写引人入胜的短视频文案&…

HarmongOS打包[保姆级]

创建应用 首先进入 华为开发者联盟-HarmonyOS开发者官网 然后进行登录。 登录成功后&#xff0c;鼠标悬停在在登录右上角那个位置后再点击管理中心&#xff0c;进入下面这个界面。 再点击&#xff1a;应用服务–>应用发布–>新建–>完善信息 构建和生成私钥和证书请求…

尚品汇-(二)

本地域名解析器&#xff1a;当我们在浏览器输入域名的时候&#xff0c;它首先找的不是远程的DNS&#xff0c;而是去本地的host中去找这个域名有没有对应的&#xff0c;如果有对应的&#xff0c;那么就根据对应的ip进行访问 一&#xff1a;环境安装 1.安装JAVA 运行环境 第一…

PyCharm添加库

在这里插入图片描述 pip install python-docx openpyxl

模拟电子技术基础(二)--PN结

PN结的本质 芯片都是由硅晶体制成&#xff0c;单个硅原子最外层有带有4个电子 在纯硅当中这些电子会两两形成共价键&#xff0c;此时周围形成非常稳定的八电子结构 在一个回路中&#xff0c;灯泡不亮&#xff0c;不导通&#xff0c;因为电池无法吸引其中的电子离开&#xff0c…

Passper for ZIP 安装教程 (ZIP密码恢复软件)

前言 Passper for ZIP是一款功能强大且实用的ZIP密码恢复软件。当你忘记了压缩包的密码时&#xff0c;这个工具可以轻松解决这个问题。只需按照界面上的提示操作&#xff0c;选择文件&#xff0c;然后选择解码的方式&#xff0c;即可轻松等待恢复完成。该软件支持四种密码恢复…

JS中的延时操作setTimeout()和setInterval()

JS中&#xff0c;给我们提供两种延时操作的内置方法setTimeout()和setInterval()。setTimeout和setInterval方法都是挂载在javascript的window对象下&#xff0c;通过两个参数控制&#xff0c;第一个参数控制运行的表达式或方法&#xff0c;第二个参数表示延时的时间&#xff0…

Stable Diffusion 3 开源了,完全不输 Midjourney

Hi&#xff0c;大家好。我是茶桁。 前段时间我介绍过一款文字生视频的 AI 工具&#xff1a;SadTalker&#xff0c; 当时咱们是作为 Stable Diffusion 的插件来安装的。 那基于 Stable Diffusion 呢&#xff0c;咱们今天就来聊聊新开源的 Stable Diffusion 3。 在文字生成图片…

ubuntu20.04桌面蓝屏问题解决

前些天做仿真项目&#xff0c;遇到了ubuntu蓝屏问题&#xff0c;于是想着找几个参考办法修复&#xff0c;但不管用&#xff0c;疑似是重要组件损坏。 损坏的原因是强制关机&#xff0c;但究竟是强制关了哪一个卡死的进程&#xff0c;不得而知&#xff0c;我有一个关不掉的仿真…

【踩坑日记】I.MX6ULL裸机启动时由于编译的程序链接地址不对造成的程序没正确运行

1 现象 程序完全正确&#xff0c;但是由于程序链接的位置不对&#xff0c;导致程序没有正常运行。 2 寻找原因 对生成的bin文件进行反汇编&#xff1a; arm-linux-gnueabihf-objdump -D -m arm ledc.elf > ledc.dis查看生成的反汇编文件 发现在在链接的开始地址处&…

vue格网图

先看效果 再看代码 <n-gridv-elsex-gap"20":y-gap"20"cols"2 s:2 m:3 l:3 xl:3 2xl:4"responsive"screen" ><n-grid-itemv-for"(item,index) in newSongList":key"item.id"class"cursor-pointer …