问题
给定一个二叉树,返回所有从根节点到叶子节点的路径。
说明: 叶子节点是指没有子节点的节点。
示例:
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/binary-tree-paths
257.二叉树的所有路径
与此问题类似的问题
数据结构——二叉树的最长路径问题
思路:
- 遇到的是叶子结点,将当前结点输出(也就不需要进入数组了),并将数组的元素逆序输出。
- 遇到的不是叶子结点,将该元素进入数组。递归实现左右子树。
核心代码
void leaf_root(BiTree T,int *path,int len)
{
if(T)
{
if(T->lchild==NULL&&T->rchild==NULL)//当T为叶子结点时,逆序输出
{
printf("%c->",T->data);
for(int i=len-1;i>0;i--)
{
printf("%c->",path[i]