广度优先只要找到当前深度的所有节点并访问就行:
public static void getValueG(TreeNode node, List<int> outArr)//广度优先
{
Queue<TreeNode> queue = new Queue<TreeNode>();
TreeNode p = node;
if (node == null)
{
return;
}
queue.Enqueue(p);
while (queue.Count > 0)//循环遍历树
{
p = queue.Dequeue();//弹出队列里开头的值
outArr.Add(p.value);//访问被弹出的节点
if (p.left != null)
{
queue.Enqueue(p.left);
}
if (p.right != null)
{
queue.Enqueue(p.right);
}
}
}