假设我们要输出二叉树中所有从根节点到叶子节点的所有路径,我们采用前序遍历二叉树的思想,每遇到一个节点,我们把该节点存储在数组中,然后判断该节点是否为叶子节点,如果是叶子节点,我们输出从根节点到该叶子节点的路径,并且在数组相应位置置空。如果不是叶子节点,我们递归进入该节点的非空子节点中。#include<iostream> #include<vector> #include<algorithm> #include<stack> using namespace std; //树节点结构 struct BinaryTreeNode { BinaryTreeNode *left; BinaryTreeNode *right; char value; }; //存储路径的数组 vector<char> path(10, '@'); //创建二叉树 void createTree(BinaryTreeNode* &root) { char val; cin >> val; if (val != '@') { root = new BinaryTreeNode; root->value = val; root->left = NULL; root->right = NULL; createTree(root->left); createTree(root->right); } } //递归实现输出从根节点到叶子结束的所有路径 void printPath(BinaryTreeNode *root, int pos) { if (root == NULL) return; path[pos] = root->value; if (root-
二叉树中从根结点到叶子结点的所有路径(递归实现)
最新推荐文章于 2024-08-10 13:56:39 发布
本文介绍了如何使用递归方法在二叉树中找到从根节点到所有叶子节点的路径。通过前序遍历,将节点值存入数组,当遇到叶子节点时输出路径。代码示例展示了如何创建、遍历和输出这些路径。
摘要由CSDN通过智能技术生成