下图的先序序列为: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);
}
}