题解 | #把二叉树打印成多行# | Rust

把二叉树打印成多行

https://www.nowcoder.com/practice/445c44d982d04483b04a54f298796288

/**
 * #[derive(PartialEq, Eq, Debug, Clone)]
 * pub struct TreeNode {
 *     pub val: i32,
 *     pub left: Option<Box<TreeNode>>,
 *     pub right: Option<Box<TreeNode>>,
 * }
 *
 * impl TreeNode {
 *     #[inline]
 *     fn new(val: i32) -> Self {
 *         TreeNode {
 *             val: val,
 *             left: None,
 *             right: None,
 *         }
 *     }
 * }
 */
struct Solution{

}

impl Solution {
    fn new() -> Self {
        Solution{}
    }

    /**
    * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
    *
    * 
        * @param pRoot TreeNode类 
        * @return int整型二维数组
    */
    pub fn Print(&self, pRoot: Option<Box<TreeNode>>) -> Vec<Vec<i32>> {
        let mut ans = Vec::new();
        if let Some(mut root) = pRoot {
            let mut queue:VecDeque<Box<TreeNode>> = VecDeque::new();
            queue.push_back(root);
            while !queue.is_empty() {
                let mut n = queue.len();
                let mut item = Vec::new();
                for i in 0..n {
                    let mut node = queue.pop_front().unwrap();
                    item.push(node.val);
                    if node.left.is_some() {
                        queue.push_back(node.left.unwrap());
                    }
                    if node.right.is_some() {
                        queue.push_back(node.right.unwrap());
                    }
                }
                ans.push(item);
            }
        }
        return ans;
    }
}

全部评论

相关推荐

不愿透露姓名的神秘牛友
昨天 10:46
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
10-05 10:13
已编辑
HHHHaos:让这些老登来现在秋招一下,简历都过不去
点赞 评论 收藏
分享
jack_miller:我给我们导员说我不在这里转正,可能没三方签了。导员说没事学校催的时候帮我想办法应付一下
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务