C二叉树,如何从树叶创建列表

2024-02-14

我需要建立树中所有叶子的列表
例如,我有以下树:

    6
   / \
  4   3
 /\   /\
1  2 5  7

树节点类型定义

typedef struct  treeNode {
    int data;
    struct treeNode* parent;
    struct treeNode* left;
    struct treeNode* right;
} TreeNode;

我的列表应该是 1->2->5->7

列表类型定义

typedef struct list {
        ListNode* head;
        ListNode* tail;
    } List;

列表节点类型定义

  typedef struct listNode {
        int data;
        struct listNode* next;
    } ListNode;

Listnode->data = TreeNode->data; (listnode结构数据)

该函数应该是通用的,我厌倦了几个递归函数,但没有一个起作用

有任何想法吗? 提前致谢。


基本思想是遍历树in-order https://en.wikipedia.org/wiki/Tree_traversal#In-order,并将遇到的每个叶节点推送到列表中。像下面这样:

populateList(node)
  if(node == null) return

  populateList(node->left)

  if (node->left == null && node->right == null)
    pushToList(node)
    return

  populateList(node->right)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C二叉树,如何从树叶创建列表 的相关文章

  • 如何在 Visual Studio 2010 中增强 XAML 设计器?

    当我使用 XAML 设计器时 进入设计器和退出设计器是如此困难和缓慢 当我这样做时 Visual Studio 卡了一段时间 有什么方法可以增强 XAML 设计器和编辑器吗 Ant 保存 XAML 文件时非常慢 这通常意味着您可能有复杂的
  • VB.NET 相当于 C# 属性简写吗?

    是否有与 C 等效的 VB NET public string FirstName get set 我知道你能做到 Public Property name As String Get Return name ToString End Ge
  • 如何读取扩展文件属性/文件元数据

    因此 我按照教程使用 ASP net core 将文件 上传 到本地路径 这是代码 public IActionResult About IList
  • C++ 中本地类中的静态成员变量?

    我知道我们不能宣布static本地类中的成员变量 但其原因尚不清楚 那么请问有人可以解释一下吗 另外 为什么我们不能访问非static函数内部定义的变量 内部已经定义了局部类 直接在局部类成员函数中 在下面给出的代码中 int main i
  • 拉伸数组

    我有一个形成曲线的样本向量 假设其中有 1000 个点 如果我想将其拉伸到填充 1500 个点 给出不错结果的最简单算法是什么 我正在寻找一些只有几行 C C 的东西 我总是想增加向量的大小 并且新向量可以是当前向量大小的 1 1 倍到 5
  • 为 Visual Studio 2013 编译 Tesseract

    我正在尝试使用tesseract在 Visual Studio 2013 中 我在链接器 gt 输入 不是 libtesseract302 static lib 中使用 libtesseract302 lib 一切都正常 并且已编译并运行
  • 向 Nhibernate 发出 SQL 查询

    如何将此 SQL 查询发送给 Nhibernate SELECT Customer name FROM Company INNER JOIN Customer ON Company CompanyId Customer CompanyId
  • 如何在 C# 中从 UNIX 纪元时间转换并考虑夏令时?

    我有一个从 unix 纪元时间转换为 NET DateTime 值的函数 public static DateTime FromUnixEpochTime double unixTime DateTime d new DateTime 19
  • 如何从 .resx 文件条目获取注释

    资源文件中的字符串有名称 值和注释 The ResXResourceReader类让我可以访问名称和值 有办法看评论吗 你应该能够得到Comment via ResXDataNode class http msdn microsoft co
  • 如何将整数转换为 void 指针?

    在 C 中使用线程时 我面临警告 警告 从不同大小的整数转换为指针 代码如下 include
  • 如何使用 watin 中的 FileUploadDialogHandler 访问文件上传对话框

    我正在使用 IE8 和 watin 并尝试通过我的网页测试上传文件 我不能简单地使用 set 方法设置上传文件 例如 ie FileUpload Find ById someId Set C Desktop image jpg 因为上传文本
  • 上下文敏感与歧义

    我对上下文敏感性和歧义如何相互影响感到困惑 我认为正确的是 歧义 歧义语法会导致使用左推导或右推导构建多个解析树 所有可能的语法都是二义性的语言是二义性语言 例如 C 是一种不明确的语言 因为 x y 总是可以表示两个不同的事物 如下所述
  • gcc 的配置选项如何确定默认枚举大小(短或非短)?

    我尝试了一些 gcc 编译器来查看默认枚举大小是否很短 至少一个字节 强制使用 fshort enums 或无短 至少 4 个字节 强制使用 fno short enums user host echo Static assert 4 si
  • C++ 密码屏蔽

    我正在编写一个代码来接收密码输入 下面是我的代码 程序运行良好 但问题是除了数字和字母字符之外的其他键也被读取 例如删除 插入等 我知道如何避免它吗 特q string pw char c while c 13 Loop until Ent
  • 用于 C# 的 TripleDES IV?

    所以当我说这样的话 TripleDES tripledes TripleDES Create Rfc2898DeriveBytes pdb new Rfc2898DeriveBytes password plain tripledes Ke
  • 如何在 C# 中调整图像大小同时保持高质量?

    我从这里找到了一篇关于图像处理的文章 http www switchonthecode com tutorials csharp tutorial image editing saving cropping and resizing htt
  • 如何在按钮单击时模拟按键 - Unity

    我对 Unity 中的脚本编写非常陌生 我正在尝试创建一个按钮 一旦单击它就需要模拟按下 F 键 要拾取一个项目 这是我当前的代码 在编写此代码之前我浏览了所有统一论坛 但找不到任何有效的东西 Code using System Colle
  • 有没有办法强制显示工具提示?

    我有一个验证字段的方法 如果无法验证 该字段将被清除并标记为红色 我还希望在框上方弹出一个工具提示 并向用户显示该值无效的消息 有没有办法做到这一点 并且可以控制工具提示显示的时间 我怎样才能让它自己弹出而不是鼠标悬停时弹出 If the
  • 如何将 Roslyn 语义模型返回的类型符号名称与 Mono.Cecil 返回的类型符号名称相匹配?

    我有以下代码 var paramDeclType m semanticModel GetTypeInfo paramDecl Type Type Where paramDeclType ToString returns System Col
  • 在客户端系统中安装后桌面应用程序无法打开

    我目前正在使用 Visual Studio 2017 和 4 6 1 net 框架 我为桌面应用程序创建了安装文件 安装程序在我的系统中完美安装并运行 问题是安装程序在其他计算机上成功安装 但应用程序无法打开 edit 在客户端系统中下载了

随机推荐

  • ForeignKey(User, unique=True) 和 OneToOneField 之间的区别[重复]

    这个问题在这里已经有答案了 之间有什么不同models ForeignKey Modelname unique True and models OneToOneField在姜戈 我应该在哪里使用models OneToOneField an
  • TextField maxLength - Android Jetpack Compose

    是否有任何开箱即用的解决方案来限制 TextField 中的字符大小 我没有看到任何像 XML 中那样的 maxLength 参数 您可以使用onValueChange参数限制字符数 var text by remember mutable
  • 左平衡二叉树

    我正在读一本关于数据结构的书 它说左平衡二叉树是一棵树 其中叶子仅占据最后一层的最左边位置 这对我来说似乎有点模糊 这是否意味着叶子仅位于根的左侧并分布在整个级别 或者叶子仅存在于整个树的左侧 究竟什么构成左平衡 我不确定我的猜测是否涵盖了
  • 如何将菜单项添加到 iOS 中的共享菜单

    我刚刚开始进行 iOS 开发 但我必须尽早做的事情是向系统菜单添加一个按钮 就像 Dropbox 在与电子邮件附件交互时添加按钮一样 该应用程序将用于视频 因此在共享菜单上为 QuickTime 播放器添加一个按钮将是理想的选择 我浏览了文
  • 使用 HMAC 或 OpenSSL 进行 URL 签名

    我对 url 签名感兴趣 例如 但我有一些要求 但我还没有解决方案 我将使用PHP or Python对于页面 所以我需要能够使用两者之一来签名和验证签名 我的计划是使用 priv pub 密钥方案来签署一些数据 并能够验证签名是否有效 但
  • 在用户因超时注销之前显示一条消息

    我们有一个使用 Devise 进行身份验证的 Rails 4 应用程序 我们想 在用户会话自动过期前 1 分钟向用户发送消息 让用户单击此消息上的按钮以继续他 她的会话 自动将用户发送到登录页面 并在其会话过期时显示一条消息 是否有任何 D
  • 在图片框中运行另一个应用程序

    这是我用来在图片框中运行另一个应用程序的示例代码 Imports System Diagnostics Imports System Runtime InteropServices Public Class Form1
  • Go 中在 EOF 上重新连接 TCP

    我有以下内容 In an init func if logStashHost lsconn err net Dial tcp logStashHost ToLogStash rec lsconn 然后两个函数 func ReadLogSta
  • 解压内容应用内购买ios

    如果进行应用内购买 Apple 托管的内容将以 zip 格式下载 我尝试解压缩这些内容 但提交使用 zipArchive 打开 zip 文件 ZipArchive za ZipArchive alloc init za delegate s
  • 针对类实现 QProgressBar

    我的 PyQt 程序有 2 个小部件 选择文件等 然后是一个显示解析文件结果的主窗口 该程序非常适合小型样本文件 但是当尝试解析较大的文件时 它会挂起 显示 未响应 然后在大约 30 秒左右后显示结果 我想在主窗口打开之前实现一个 QDia
  • 触摸时 ACTION_CANCEL

    我有以下类 它代表一个可触摸的视图并绘制一个滑动条 public class SlideBar extends View private int progress private int max private Paint backgrou
  • PHP COM口与DIO的连接

    我正在尝试用 PHP 连接称重机 我已经用超级终端测试过它工作正常 但是当我使用 PHP 代码时fopen or dio open它被执行但是当fgets or dio read被调用时 它挂起并且不显示任何内容 Fopen 示例 exec
  • 多个按键不起作用

    我在使用时遇到了密钥问题freeglut功能 所有按键都工作正常 除了ctrl alt D 我不知道为什么我做错的事情不起作用 这是代码 include
  • 一张表有多少个字段是正常的?

    好的 我正在创建一个游戏 我有一个表 其中保存了有关会员的大量信息 因此其中有很多字段 一张表有多少个字段是正常的 有关系吗 也许我应该将该信息分成二三四表 你怎么认为 规范化数据库 如果您觉得列太多 您可能有重复组 这建议您应该规范化数据
  • Python 套接字 gethostbyname() 仅返回一个 IP 地址

    我正在使用Python套接字做一些简单的实验 其中我有一个主机名 它用两个IP地址解析 但是当我使用时 socket gethostbyname demo sample com 我只获得一个 IP 地址 为什么会这样显示 有没有其他方法可以
  • 在 WinRT 中选择 XAML 的 ListView 和 GridView

    XAML中的GridView和ListView似乎是同一个控件 开发商如何在两者之间做出选择 GridView 控件通常水平滚动 此外 您还会看到项目之间的一些本机间距大于 ListView 中的间距 之所以存在这种间距 是为了考虑如何在
  • android:从应用程序代码检测应用程序的重新安装

    有没有办法在重新安装应用程序代码时进行检测 我看到可以通过监听广播接收器中的 PACKAGE REPLACED 事件来检测来自市场的应用程序更新 但是 如果从编辑器 eclipse 重新安装应用程序 这些事件不会传递到应用程序 我的要求是禁
  • 快速添加:执行被中断,原因:EXC_BAD_INSTRUCTION(代码= EXC_l386_INVOP,子代码= 0x0)

    我正在尝试在 Swift 中添加两个数字并打印其总和 import Foundation func solveMefirst firstNo Int secondNo Int gt Int return firstNo secondNo l
  • 如何修改log4j JsonLayout字段名称

    我已经使用此配置文件配置了 log4j 2 来编写我的MapMessage控制台
  • C二叉树,如何从树叶创建列表

    我需要建立树中所有叶子的列表例如 我有以下树 6 4 3 1 2 5 7 树节点类型定义 typedef struct treeNode int data struct treeNode parent struct treeNode lef