[LeetCode]199.Binary Tree Right Side View

题目

Given a binary tree, imagine yourself standing on the right side of it, return the values of the nodes you can see ordered from top to bottom.

For example: Given the following binary tree, 1<— / \ 23<— \\ 54<— You should return [1, 3, 4].

思路

层次遍历

代码

/*——————————————————————-* 日期:2014-04-05* 作者:SJF0115* 题目: 199.Binary Tree Right Side View* 来源:https://leetcode.com/problems/binary-tree-right-side-view/* 结果:AC* 来源:LeetCode* 总结:——————————————————————–*/;struct TreeNode{int val;TreeNode *left;TreeNode *right;TreeNode(int x) : val(x), left(NULL), right(NULL) {}};class Solution {public:vector<int> rightSideView(TreeNode *root) {vector<int> result;if(root == nullptr){return result;}//ifqueue<TreeNode*> cur;queue<TreeNode*> next;cur.push(root);result.push_back(root->val);TreeNode *node,*pre;// 层次遍历while(!cur.empty()){pre = nullptr;while(!cur.empty()){node = cur.front();cur.pop();if(node->left){next.push(node->left);pre = node->left;}//ifif(node->right){next.push(node->right);pre = node->right;}//if}//whileif(pre != nullptr){result.push_back(pre->val);}//ifswap(cur,next);}//whilereturn result;}};int main() {Solution solution;TreeNode *root = new TreeNode(1);root->left = new TreeNode(2);root->right = new TreeNode(3);root->left->right = new TreeNode(5);root->right->right = new TreeNode(4);vector<int> result = solution.rightSideView(root);for(int i = 0;i < result.size();++i){cout<<result[i]<<” “;}//forcout<<endl;return 0;}

运行时间

,无论何时何地,只要创造就有收获,只有不息的奋进,才能证明生命的存在。

[LeetCode]199.Binary Tree Right Side View

相关文章:

你感兴趣的文章:

标签云: