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,null,null,15,7] ,
Given binary tree
3 / \ 9 20 / \ 15 7
return its bottom-up level order traversal as:
[ [15,7], [9,20], [3] ]<Solution>
這題是 Binary Tree Level Order Traversal 的衍生題
這次的 level 不是由上到下,而是要改成由下到上
可以完全用同樣觀念,只要改一行 code
就是將 level 的值丟到 ans 時,不要使用 push_back
而是改成 ans.insert(ans.begin(), out),把高 level 的值放到低 level 的值前面
code 如下
也可以不用使用 vector::insert() 的寫法,可以使用 std::reverse() 來反轉最後的答案就好
而且速度還比使用 vector::insert() 會快很多
code如下
recursive 的寫法也是一樣,只要改成把高 level 的值放到低 level 的值前面就可以了
code 如下
也可使用 std::reverse() 就好
code 如下
沒有留言:
張貼留言