LeetCode-102&107.Binary Tree Level Order Traversal

来源:互联网 发布:微信推送软件 编辑:程序博客网 时间:2024/05/08 02:06

Given a binary tree, return the bottom-up level order traversal of its nodes' values. (ie, from left to right, level by level from leaf to root).

For example:
Given binary tree {3,9,20,#,#,15,7},

    3   / \  9  20    /  \   15   7

102:

return its level order traversal as:

[  [3],  [9,20],  [15,7]]

107:

return its bottom-up level order traversal as:

[  [15,7],  [9,20],  [3]]

这道题与LeetCode 104的解法(http://blog.csdn.net/zmq570235977/article/details/51210982)基本一样

102:

public IList<IList<int>> LevelOrderBottom(TreeNode root)        {            IList<IList<int>> res = new List<IList<int>>();            if (root == null)                return res;            int num;            TreeNode node;            Queue<TreeNode> q = new Queue<TreeNode>();            q.Enqueue(root);            while ((num = q.Count) > 0)            {                IList<int> list = new List<int>();                for (int i = 0; i < num; i++)                {                    node = q.Dequeue();                    if (node.left != null)                        q.Enqueue(node.left);                    if (node.right != null)                        q.Enqueue(node.right);                    list.Add(node.val);                }                res.Add(list);            }            return res;        }


107:将

res.Add(list);
换成
res.Insert(0, list);
即可。

0 0