打印二叉树根结点到所有叶子结点的路径
来源:互联网 发布:限制局域网p2p软件 编辑:程序博客网 时间:2024/04/28 05:46
打印路径的思路:利用一个数组保存经过的结点,若该结点是叶子结点,打印数组中结点。如果不是叶子结点,那么将这个结点加入数组,递归地调用该函数,入口参数设为结点的左结点和右结点。
代码:
void printArray(int arr[],int len){cout<<char(arr[0]);for(int i = 1; i < len; i++){/* conversion or not to char */cout<<"->"<<char(arr[i]);}cout<<endl;}void printPathsRecur(BinTree T, int path[],int pathLen){if(T == NULL)return;/* append current node to the path array */path[pathLen] = T->data;pathLen++;/* it's a leaf , so print the path that lead to it */if(T->lchild == NULL && T->rchild == NULL){printArray(path,pathLen);}else{/*otherwise try both trees*/printPathsRecur(T->lchild,path,pathLen);printPathsRecur(T->rchild,path,pathLen);}} void printPaths(BinTree T){int path[1000];printPathsRecur(T,path,0);}测试结果:
A C B F E DPaths : A->C->FA->B->EA->B->D
A C B D EPaths : A->CA->B->D->E
REF:
1,http://cslibrary.stanford.edu/110/BinaryTrees.html#csoln
2,http://blog.csdn.net/randyjiawenjie/article/details/6772145
0 0
- 打印二叉树根结点到所有叶子结点的路径
- 【Leetcode】Binary Tree Paths 二叉树根结点到所有叶子结点的路径
- 【31】给定一个二叉树打印出所有从根结点到叶子结点路径和为 k 的路径
- 【31】给定一个二叉树打印出所有从根结点到叶子结点路径和为 k 的路径
- 二叉树根结点到任意结点的路径
- 输出二叉树中所有从根结点到叶子结点的路径
- 输出二叉树中所有从根结点到叶子结点的路径
- 输出二叉树中所有从根结点到叶子结点的路径
- 二叉树中从根结点到叶子结点的所有路径(递归实现)
- 打印从根结点到叶子结点的路径(递归)
- 根结点到所有叶子结点的路径问题
- c++输出二叉树叶子结点并输出叶子结点到根结点的路径长度
- 二叉树中从根结点到叶子结点所有路径(非递归实现)
- 树根结点到r所指结点之间的路径
- java 遍历树结点 同时保留所有从根到叶子结点的路径
- !求二叉树中从根结点到叶子结点的路径
- wustoj(二叉树根节点到指定结点的路径-非递归算法)
- 求解最优二叉树所有叶子结点的带权路径长度之和
- [LeetCode] Jump Game
- 使用汇编语言编写一条简单的贪吃蛇
- 【剑指offer】Q14:调整数组顺序使奇数位于偶数前面
- 解决mxGraph放大/缩小在非IE浏览器下overlay图标位置不变化的问题
- 大三期末,一次无聊的码字
- 打印二叉树根结点到所有叶子结点的路径
- CString转LPCWSTR
- 使用sublime text2如何新建文件快速生成HTML头部信息?
- Linux file system events with C, Python and Ruby
- 9.0 看门狗定时器WDT
- PopupWindow(一)
- 【HDU】1827 Summer Holiday 强连通缩点
- 编译原理 (预处理>编译>汇编>链接)
- HDU 1556 Color the ball