LeetCode 199.Binary Tree Right Side View (二叉樹的右檢視)
阿新 • • 發佈:2018-11-20
題目描述:
給定一棵二叉樹,想象自己站在它的右側,按照從頂部到底部的順序,返回從右側所能看到的節點值。
示例:
輸入: [1,2,3,null,5,null,4]
輸出: [1, 3, 4]
解釋:
1 <---
/ \
2 3 <---
\ \
5 4 <---
AC C++ Solution:
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ class Solution { public: void recursion(TreeNode *root, int level, vector<int> &res) { if(root==NULL) return ; if(res.size()<level) res.push_back(root->val); //每一層只能新增一個, 所以res的大小一定小於level (level從1開始累加的) recursion(root->right, level+1, res); recursion(root->left, level+1, res); } vector<int> rightSideView(TreeNode *root) { vector<int> res; recursion(root, 1, res); return res; } };