数据结构 c语言, 二叉树的最大值

下图的先序序列为:AB#D##CE##F##
【输入形式】二叉树的先序遍历序列
【输出形式】二叉树的先序、中序和后序遍历结果,每种遍历结果输出一行,然后输出二叉树的高度、结点数、叶节点数、最大值,每个结果一行。
【样例输入】AB#D##CE##F##
【样例输出】
ABDCEF
BDAECF
DBEFCA
3
6
3
F
二叉树的最大值是什么意思呀,为什么输出的是F呢?MAX函数需要怎么写

反推出二叉树如下:

            A
        /        \
      B         C
        \        /   \
        D    E      F

Q1:二叉树的最大值是什么意思呀?
A1:指二叉树所有节点中值最大的那个。
Q2:为什么输出的是F呢?
A2:因为ABCDEF中F最大。
Q3:MAX函数怎么写?
A3:

int maxTreeNode(TreeNode root)
{
    if(root.left == null && root.right == null)
        return root.val;
    else if(root.left != null && root.right == null)
        return root.val > maxTreeNode(root.left) ? root.val : maxTreeNode(root.left);
    else if(root.left == null && root.right != null)
        return root.val > maxTreeNode(root.right) ? root.val : maxTreeNode(root.right);
    else
    {
        if(root.val > maxTreeNode(root.left))
            return  root.val > maxTreeNode(root.right) ? root.val :     maxTreeNode(root.right);
        else
            return maxTreeNode(root.left) > maxTreeNode(root.right) ? maxTreeNode(root.left) : maxTreeNode(root.right);
    }
}