【数据结构与算法】二叉树中从每个叶子结点到根结点的路径

题目

  Qestion:输出二叉树中从每个叶子结点到根结点的路径


数据结构与定义

#include <stdio.h>
#include <stdlib.h>typedef struct TreeNode
{int val;struct TreeNode *left;struct TreeNode *right;
} TreeNode;

二叉树形状

在这里插入图片描述


核心代码

void LeafToRoot(TreeNode *node, int length, int *Path)
{// 结点不存在if (node == NULL)return;// 结点存在else{Path[length] = node->val;length = length + 1;// 该结点为叶子结点if (node->left == NULL && node->right == NULL){// 输出路径上每个结点的值for (int i = 0; i < length; i++){printf("%d ", Path[i]);}printf("\n");}else{LeafToRoot(node->left, length, Path);LeafToRoot(node->right, length, Path);}}
}

核心代码快照

在这里插入图片描述


全部代码

#include <stdio.h>
#include <stdlib.h>typedef struct TreeNode
{int val;struct TreeNode *left;struct TreeNode *right;
} TreeNode;void inputTree(TreeNode *root)
{root->val = 1;root->left = (TreeNode *)malloc(sizeof(TreeNode));root->left->val = 2;root->left->left = (TreeNode *)malloc(sizeof(TreeNode));root->left->right = (TreeNode *)malloc(sizeof(TreeNode));root->left->left->val = 4;root->left->left->left = NULL;root->left->left->right = NULL;root->left->right->val = 5;root->left->right->left = NULL;root->left->right->right = NULL;root->right = (TreeNode *)malloc(sizeof(TreeNode));root->right->val = 3;root->right->left = (TreeNode *)malloc(sizeof(TreeNode));root->right->left->val = 6;root->right->left->left = (TreeNode *)malloc(sizeof(TreeNode));root->right->left->left->val = 8;root->right->left->left->left = NULL;root->right->left->left->right = NULL;root->right->left->right = NULL;root->right->right = (TreeNode *)malloc(sizeof(TreeNode));root->right->right->val = 7;root->right->right->left = NULL;root->right->right->right = NULL;
}void LeafToRoot(TreeNode *node, int length, int *Path)
{// 结点不存在if (node == NULL)return;// 结点存在else{Path[length] = node->val;length = length + 1;// 该结点为叶子结点if (node->left == NULL && node->right == NULL){// 输出路径上每个结点的值for (int i = 0; i < length; i++){printf("%d ", Path[i]);}printf("\n");}else{LeafToRoot(node->left, length, Path);LeafToRoot(node->right, length, Path);}}
}
int main()
{int Path[20];int length = 0;TreeNode *root = new TreeNode;inputTree(root);LeafToRoot(root, length, Path);return 0;
}

结束语

  因为是算法小菜,所以提供的方法和思路可能不是很好,请多多包涵~如果有疑问欢迎大家留言讨论,你如果觉得这篇文章对你有帮助可以给我一个免费的赞吗?我们之间的交流是我最大的动力!

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C#加载 ToolBlock简单示例

可以用visionpro的VPPVersion.exe 工具查看文件格式。 在安装路径最后一个 官方示例文件路径 简单实例 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; …

应急响应:系统入侵排查指南

目录 系统基本信息排查 Windows系统排查 Linux系统排查 CPU信息 操作系统信息 载入模块排查 用户排查 Windows系统用户排查 排查所有账户 Linux用户排查 root账户排查 查看所有可登录账户 查看用户错误的登录信息 查看所有用户最后登录信息 排查空口令账户 启…

C++初阶之类和对象(中)

类和对象&#xff08;中&#xff09; 1.类的6个默认成员函数2. 构造函数2.1 概念2.2 特性 3.析构函数3.1 概念3.2 特性 4. 拷贝构造函数4.1 概念4.2 特征 5 运算符重载5.1 运算符重载5.2 赋值运算符重载5.3 前置和后置重载 6.日期类的实现7.const成员8.取地址及const取地址操作…

QT编写的数字键盘

https://download.csdn.net/download/qq_20189555/88001237

ZVS无线输电Ltspice仿真

1 原理图 &#xff08;1&#xff09;电路分析 2 仿真结果 &#xff08;1&#xff09;TX波形 &#xff08;2&#xff09;RX波形 &#xff08;3&#xff09;负载电压波形

NSS [鹏城杯 2022]简单包含

NSS [鹏城杯 2022]简单包含 看代码觉得不就直接post flagdata://text/plain,<?php system(ls);?>行了。 但是事实上没有什么软用。 用了php://伪协议之后发现有WAF。 可以读源码 解码得到 <?php$path $_POST["flag"];if (strlen(file_get_contents(ph…

Transfomer编码器中自注意力机制、前馈网络层、叠加和归一组件等讲解(图文解释)

Transformer中的编码器不止一个,而是由一组N个编码器串联而成,一个编码的输出作为下一个编码器的输入,如下图所示,每一个编码器都从下方接收数据,再输出给上方,以此类推,原句中的特征会由最后一个编码器输出,编码器模块的主要功能就是提取原句中的特征 我们又可以将编码…

(六)矢量数据的空间分析——缓冲区分析

矢量数据的空间分析——缓冲区分析 目录 矢量数据的空间分析——缓冲区分析 1.基本概念1.1图解1.2缓冲距离1.2.1固定距离1.2.2由字段决定的距离 2.缓冲区的建立2.1操作步骤2.1.1点状要素建立缓冲区2.1.2面状要素建立缓冲区 缓冲区是一组或一类地图要素&#xff08;点、线、面&a…

在 Linux 中查找 IP 地址的 3 种简单方法

在 Linux 系统中&#xff0c;经常需要查找 IP 地址以进行网络配置、故障排除或安全管理。无论是查找本地主机的 IP 地址还是查找其他设备的 IP 地址&#xff0c;本文将介绍三种简单的方法&#xff0c;帮助你在 Linux 中轻松找到所需的 IP 地址。 总结 通过上述三种简单的方法&…

开放式耳机漏音有多大?开放式耳机和封闭式耳机哪个音质好?

什么是开放式耳机 从名字上理解就是开放样式的耳机&#xff0c;其实也确实如此&#xff0c;开放式耳机是不需要封闭耳道来传输声音&#xff0c;主要是通过耳骨振动传递或者声波震动耳膜&#xff0c;两者声音传递的方式都不用完全封闭耳道&#xff0c;可以让耳道对外界放开&…

上门按摩小程序开发|同城预约上门小程序定制

上门按摩小程序对实体按摩商家来说是非常适合的。下面是对上门按摩小程序适合实体按摩商家开发的简单介绍&#xff1a;   扩展服务范围&#xff1a;上门按摩小程序可以让实体按摩商家将服务范围扩展到用户的家中或办公场所。用户可以通过小程序预约上门按摩服务&#xff0c;无…

算法与数据结构-栈

文章目录 什么是栈如何实现一个“栈”&#xff1f;定长顺序栈动长链式栈 栈的应用栈在函数调用中的应用栈在表达式求值中的应用栈在括号匹配中的应用 总结 什么是栈 后进者先出&#xff0c;先进者后出&#xff0c;这就是典型的“栈”结构。 就像一摞叠在一起的盘子。我们平时放…