C语言 求二叉树根节点到叶子节点的路径

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言 求二叉树根节点到叶子节点的路径相关的知识,希望对你有一定的参考价值。

要求输出二叉树的叶子节点和叶子节点到根节点的路径

参考技术A 它的算法思想应该是
1,以一指针指向该叶子结点并向上(父结点)找,把父节点入栈(方便输出路径)
2,把指针指向父节点,重复上面的过程,直到节点的父节点为空
3,依次出栈输出信息,路径就出来了
(注:此二叉树的节点应包括父指针,左右指针,数据域)

就这么多吧! 要学习程序,就得自己尝试写,写多了就会了

还有什么不懂的可以给我留言 !!本回答被提问者和网友采纳
参考技术B typedef char KeyType;
typedef struct Node
KeyType key;
struct Node *lchild, *rchild;
BTNode, *BTree;
char Paths[20];
void OutPutPath( )

printf("%s\n", Paths);

void LeavesPath(BTree tree, int level)

if(tree == NULL) return;
Paths[level] = tree->key;
if((tree->lchild == NULL) && (tree->rchild == NULL))

Paths[level + 1] = '\0';
OutPutPath( );
return;

LeavesPath(tree->lchild, level + 1);
LeavesPath(tree->rchild, level + 1);

二叉树根节点到叶子节点的所有路径和(NC5/考察次数Top53/难度中等)

描述:
给定一个仅包含数字\\ 0-9 0−9 的二叉树,每一条从根节点到叶子节点的路径都可以用一个数字表示。
例如根节点到叶子节点的一条路径是1\\to 2\\to 31→2→3,那么这条路径就用\\ 123 123 来代替。
找出根节点到叶子节点的所有路径表示的数字之和
例如:
在这里插入图片描述
这颗二叉树一共有两条路径,
根节点到叶子节点的路径 1\\to 21→2 用数字\\ 12 12 代替
根节点到叶子节点的路径 1\\to 31→3 用数字\\ 13 13 代替
所以答案为\\ 12+13=25 12+13=25

示例1
输入:
{1,0}
返回值:
10
(题目来自牛客网)

用C++实现如下

class Solution {
public:
    /**
     * 
     * @param root TreeNode类 
     * @return int整型
     */
    int sumNumbers(TreeNode* root) {
        //计算 根节点 到 叶子节点 的所有路径和
        if(!root)
            return 0;
        return preOrder(root,0);           //利用先序遍历求解和公式进行求解;
    }
    
    int preOrder(TreeNode* root, int sum)
    {
        if(!root)
            return 0;
        sum=10*sum+root->val;              //对根节点到叶子节点的表示
        if(!root->left && !root->right)
            return sum;                    //左右都为空了返回
        return preOrder(root->left,sum)+preOrder(root->right,sum);
    }                                      //否则返回左边求解公式和右边求解公式之和
};

纯手撕代码,如果觉得内容不错麻烦点个赞,后面陆续配上Top100算法题通俗易懂的讲解视频,可以花两个月时间完全掌握,进大厂不是梦,转行狗亲测!

以上是关于C语言 求二叉树根节点到叶子节点的路径的主要内容,如果未能解决你的问题,请参考以下文章

求二叉树中从根结点到叶子节点的路径

NC5 二叉树根节点到叶子节点的所有路径和

[javascript]二叉树根节点到叶子节点和为指定值的路径

二叉树根节点到叶子节点的所有路径和(NC5/考察次数Top53/难度中等)

NC 8 二叉树根节点到叶子节点和为指定值的路径

二叉树根节点到叶子节点和为指定值的路径(NC8/考察次数Top54/难度中等)