二叉树从根节点出发的所有路径

二叉树从根节点出发的所有路径

在这里插入图片描述
看上图中 二叉树结构
从根节点出发的所有路径 如下
6->4->2->1
6->4->2->3
6->4->5
6->8->7
6->8->9

逻辑思路:
按照先序遍历 加 回溯法 实现

代码如下

        // 调用此方法,将根节点传递进来
        public static IList<IList<int>> Path(BinNode<int> root)
        {
            // 存储所有路径,每一项为一个路径
            List<IList<int>> resultList = new List<IList<int>>();

            List<int> list = new List<int>();
            Path(root, resultList, list);

            // 遍历打印所有路径
            foreach(var listTemp in resultList)
            {
                string msg = "";
                foreach(var item in listTemp)
                {
                    msg += "->" + item;
                }
                Console.WriteLine(msg);
            }

            return resultList;
        }

        public static void Path(BinNode<int> root, IList<IList<int>> resultList, List<int> list)
        {
            if (null == root)
            {
                return;
            }

            list.Add(root.Element);
            // 如果 左子树和右子树 都不存在,则路径结束
            if (null == root.LeftChild && null == root.RightChild)
            {
                List<int> newList = new List<int>(list);
                // 将路径存储
                resultList.Add(newList);
                return;
            }

            if (root.LeftChild != null)
            {
                Path(root.LeftChild, resultList, list);
                // 回溯
                list.RemoveAt(list.Count - 1);
            }

            if (root.RightChild != null)
            {
                Path(root.RightChild, resultList, list);
                // 回溯
                list.RemoveAt(list.Count - 1);
            }

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

[2024-6-30]如何获取OpenAI API Key/OpenAI密钥

一、前言 由于官网页面更新&#xff0c;获取路径与之前有所不同。 二、获取路径 1.点击Products&#xff0c;再点击API login 2.点击API 3. 如果需要登录&#xff0c;则登录 4.点击API keys&#xff0c;再点击Create new secret key

python-求出 e 的值

[题目描述] 利用公式 e11/1!1/2!1/3!⋯1/&#x1d45b;!&#xff0c;求 e 的值&#xff0c;要求保留小数点后 10 位。输入&#xff1a; 输入只有一行&#xff0c;该行包含一个整数 n&#xff0c;表示计算 e 时累加到1/n!。输出&#xff1a; 输出只有一行&#xff0c;该行包含计…

决策树划分属性依据

划分依据 基尼系数基尼系数的应用信息熵信息增益信息增益的使用信息增益准则的局限性 最近在学习项目的时候经常用到随机森林&#xff0c;所以对决策树进行探索学习。 基尼系数 基尼系数用来判断不确定性或不纯度&#xff0c;数值范围在0~0.5之间&#xff0c;数值越低&#x…

【Django】网上蛋糕项目商城-关键字搜索,商品详情功能

概念 上文中已经实现热销和新品的商品列表功能&#xff0c;本文篇幅中实现关键字搜索商品&#xff0c;将商品加入购物车&#xff0c;以及查看商品的详情信息等功能 关键字搜索实现步骤 在head.html头部页面中&#xff0c;鼠标移动至搜索图标会显示隐藏的搜索框进行输入关键信…

内容营销专家刘鑫炜:碎片化时代,小微企业内容营销如何乘风破浪

当下&#xff0c;互联网高度发达&#xff0c;技术的飞速进步和社交媒体的普及&#xff0c;使得信息的产生和传播速度达到了前所未有的高度。互联网上的内容如同潮水般汹涌而来&#xff0c;不断刷新着我们的认知边界&#xff0c;但与此同时&#xff0c;这也导致了人们的注意力被…

阐述Python:except的用法和作用?

欢迎莅临我的博客 &#x1f49d;&#x1f49d;&#x1f49d;&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

【python爬虫】豆瓣爬虫学习

文章目录 网页地址爬虫目标技术栈爬虫代码注意事项 Python爬虫学习&#xff1a;我们可以选择一个相对简单的网站进行数据抓取。这里以抓取“豆瓣电影Top250”的信息为例&#xff0c;这个网站提供了丰富的电影数据&#xff0c;包括电影名称、评分、导演、演员等信息。 网页地址…

【面试系列】数据工程师高频面试题及详细解答

欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;欢迎订阅相关专栏&#xff1a; ⭐️ 全网最全IT互联网公司面试宝典&#xff1a;收集整理全网各大IT互联网公司技术、项目、HR面试真题. ⭐️ AIGC时代的创新与未来&#xff1a;详细讲解AIGC的概念、核心技术、…

Springboot与xxl-job

一、下载xxl-job项目 XXL-JOB是一个分布式任务调度平台&#xff0c;其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线&#xff0c;开箱即用。 从GitHub上面将项目clone下来&#xff0c;如果网络问题导致速度慢也可以从Gitee上面拉…

【three.js案例二】时空隧道

import * as THREE from ./build/three.module.js // 引入轨道控制器扩展库OrbitControls.js import { OrbitControls } from three/addons/controls/OrbitControls.js; // 引入dat.gui.js的一个类GUI import { GUI } from three/addons/libs/lil-gui.module.min.js;// 场景 co…

Go语言环境安装 第一个Go程序

Go下载地址 哪个能用用哪个。 https://go.dev/ https://golang.google.cn/&#xff08;Golang官网的官方镜像&#xff09; Windows 使用.msi安装包安装 下载msi文件 安装 双击运行go1.22.4.windows-amd64.msi Next 勾选I accept the terms in the License Agreement&…

ChatGPT的原理简介

目录 前言 1. 什么是ChatGPT&#xff1f; 2. GPT模型的基本原理 自注意力机制 预训练和微调 3. ChatGPT的工作流程 4. ChatGPT的优势和挑战 5. 实例对话 6. 未来展望 结语 前言 在这个智能科技飞速发展的时代&#xff0c;聊天机器人逐渐成为我们生活中的“新朋友”。…

Flask无法Debug

问题描述 Flask Debug的时候&#xff0c;可能会无法进入断点。我使用的是pycharm CE版本。 解决方案 确保pycharm安装路径不带空格。&#xff08;带空格路径导致debug程序启动报错&#xff09;Gevent compatible&#xff0c;这个东西老的pycharm版本必须勾选它&#xff0c;新…

vscode python pip : 无法将“pip”项识别为 cmdlet、函数、脚本文件或可运行程序的名称

在vscode中控制台运行python文件出现&#xff1a;无法将"pip”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。 使用vscode开发python&#xff0c;需要安装python开发扩展&#xff1a; 本文已经安装&#xff0c;我们需要找的是python安装所在目录&#xff0c;本文…

python–基础篇–正则表达式–是什么

文章目录 定义一&#xff1a;正则表达式就是记录文本规则的代码定义一&#xff1a;正则表达式是一个特殊的字符序列&#xff0c;用于判断一个字符串是否与我们所设定的字符序列是否匹配&#xff0c;也就是说检查一个字符串是否与某种模式匹配。初识 Python 正则表达式 定义一&a…

Spark2.0

目录 10.3 Spark运行架构 10.3.1 基本概念 10.3.2 架构设计 ​编辑 10.3.3 Spark运行基本流程 Spark运行架构特点 10.3 Spark运行架构 10.3.1 基本概念 RDD &#xff1a;是 Resillient Distributed Dataset &#xff08;弹性分布式数据集&#xff09;的简称&#xff0c;是分…

界面组件DevExpress WinForms v24.1 - 支持DateOnly TimeOnly类型

DevExpress WinForms拥有180组件和UI库&#xff0c;能为Windows Forms平台创建具有影响力的业务解决方案。DevExpress WinForms能完美构建流畅、美观且易于使用的应用程序&#xff0c;无论是Office风格的界面&#xff0c;还是分析处理大批量的业务数据&#xff0c;它都能轻松胜…

Java17-时间类、包装类

目录 Date类 概述 常用方法 SimpleDateFormat类 概述 构造方法 格式规则 常用方法 Calendar类 概述 常用方法 get方法示例 set方法示例 add方法示例 JDK8时间相关类 ZoneId 时区 Instant 时间戳 ZoneDateTime 带时区的时间 DateTimeFormatter 用于时间的格式…

摸鱼大数据——Spark基础——Spark环境安装——Spark Local[*]搭建

一、虚拟机配置 查看每一台的虚拟机的IP地址和网关地址 查看路径: cat /etc/sysconfig/network-scripts/ifcfg-ens33 2.修改 VMware的网络地址: 使用VMnet8 3.修改windows的对应VMware的网卡地址 4.通过finalshell 或者其他的shell连接工具即可连接使用即可, 连接后, 测试一…

已成功与服务器建立连接,但是在登录过程中发生错误。(provider: SSL提供程序,error:0-证书链是由不受信任的颁发机构颁发的。)

已成功与服务器建立连接&#xff0c;但是在登录过程中发生错误。(provider: SSL提供程序,error:0-证书链是由不受信任的颁发机构颁发的。) 在连接SQL Server2008R2数据库时发生错误。 连接字符串&#xff1a;server127.0.0.1;uidsa;pwd1;databasedb; 解决办法&#xff1a; 方…