输出二叉树中所有从根结点到叶子结点的路径
2013-10-07 20:38
274 查看
// 输出二叉树中所有从根结点到叶子结点的路径.cpp : 定义控制台应用程序的入口点。 #include "stdafx.h" #include <iostream> #include <vector> using namespace std; struct BTNode { char m_value; BTNode *m_left; BTNode *m_right; }; //先序创建二叉树 void CreatBTree(BTNode *&root) { char nValue = 0; cin >> nValue; if ('#' == nValue) { return; } else { root = new BTNode(); root->m_value = nValue; CreatBTree(root->m_left); CreatBTree(root->m_right); } } //输出二叉树中所有从根结点到叶子结点的路径(递归) void FindAllPath(BTNode *pRoot, vector<char> path) { if (pRoot != NULL) { path.push_back(pRoot->m_value); if (pRoot->m_left == NULL && pRoot->m_right == NULL) { for (vector<char>::iterator iter=path.begin(); iter!=path.end(); iter++) { cout << *iter << " "; } cout << endl; return; } else { FindAllPath(pRoot->m_left, path); FindAllPath(pRoot->m_right, path); } } } int _tmain(int argc, _TCHAR* argv[]) { BTNode *pRoot = NULL; vector<char> path; CreatBTree(pRoot); cout << "二叉树中从根到叶子结点的所有路径如下:" << endl; FindAllPath(pRoot, path); system("pause"); return 0; }
运行结果:
相关文章推荐
- 输出二叉树中所有从根结点到叶子结点的路径
- 输出二叉树中所有从根结点到叶子结点的路径
- 输出二叉树中所有从根结点到叶子结点的路径
- 输出二叉树中所有从根结点到叶子结点的路径
- 【31】给定一个二叉树打印出所有从根结点到叶子结点路径和为 k 的路径
- 二叉树中从根结点到叶子结点所有路径(非递归实现)
- c++输出二叉树叶子结点并输出叶子结点到根结点的路径长度
- 输出二叉树中路径上结点值之和为给定值的所有路径
- 【31】给定一个二叉树打印出所有从根结点到叶子结点路径和为 k 的路径
- java 遍历树结点 同时保留所有从根到叶子结点的路径
- 【算法-java】打印出二叉树中结点值的和为输入整数的所有路径
- 输出二叉树路径上的所有和为K的路径
- 程序员面试金典: 9.4树与图 4.9在二叉树中,打印结点数值总和等于给定值的所有路径
- 《剑指offer》-打印出二叉树中结点值的和为输入整数的所有路径
- 每天一道LeetCode-----以字符串的形式输出二叉树所有从根节点到叶子节点的路径
- 剑指offer:输出二叉树和为某一值的所有路径
- 二叉树基本操作(输出所有叶子节点到根节点的路径)
- 输出二叉树和为特定整数的所有路径
- 输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。
- 给定一棵二叉树,每个结点包含一个值。打印出所有满足以下条件的路径: 路径上结点的值加起来等于给定的一个值。注意:这些路径不必从根结点开始。