题解 | #按之字形顺序打印二叉树#

按之字形顺序打印二叉树

https://www.nowcoder.com/practice/91b69814117f4e8097390d107d2efbe0

/*public class TreeNode{public int val;public TreeNode left;public TreeNode right;public TreeNode (int x){val = x;}}*/using System;using System.Collections.Generic;

class Solution{public List<List<int>> Print(TreeNode pRoot){// write code her

    // write code here
    List<List<int>> result = new List<List<int>>();
    if(pRoot==null)
    return result;
    Queue<TreeNode> queue = new Queue<TreeNode>();
    queue.Enqueue(pRoot);
    bool LeftToRight = true;
    while(queue.Count>0)
    {
        List<int> thisList = new List<int>();
        int len = queue.Count;
        //这里要记录此时的count用于边界判断,因为for里面有出入队列的操作,count会变
        for(int i =0;i<len;i++)
        {
            TreeNode node = queue.Dequeue();
            if(node.left!=null) queue.Enqueue(node.left);
            if(node.right!=null) queue.Enqueue(node.right);
          
            //根据当前布尔值,顺序或倒序将这一层的val插入list中
            if(LeftToRight)
            thisList.Add(node.val);   
            else
            thisList.Insert(0, node.val);             
        }
        LeftToRight = !LeftToRight;
        result.Add(thisList);
    }
    return result;
}

}

全部评论

相关推荐

缒梦&独舞:这家公司是这样的,去年给我实习offer了,不过也是面着玩儿的,他周六还要去做公益志愿活动
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务