输出二叉树的叶子结点
输出二叉树中的叶子节点并无次序要求,因此可以用三种遍历顺序中的任何一种。只是比普通的遍历多了一个条件判断。
判断是否为叶子结点:node.lchrild==null && node.rchrild==null
算法描述
static void PreOrder(TreeNode<string> node)
{
if (node != null)
{
if(node.LChrild1==null&&node.RChirld1==null)
Console.WriteLine(node.Data);
PreOrder(node.LChrild1);
PreOrder(node.RChirld1);
}
}
输出二叉树的非叶子结点
和输出叶子结点类似,只是把判断条件换一下。
判断是否为非叶子结点:node.lchrild!=null || node.rchrild!=null
算法描述
static void NotPreOrder(TreeNode<string> node)
{
if (node != null)
{
if (node.LChrild1 != null || node.RChirld1 != null)
{
Console.WriteLine(node.Data);
}
NotPreOrder(node.LChrild1);
NotPreOrder(node.RChirld1);
}
}