标签:
好久不写了,最近忙毕业论文呢。
这个题,就是说一个二叉树,你从右边看,你能看到的数有哪些(会被遮挡)
其实抽象出来就是说。。。二叉树每层最右边的数有哪些。。
那我们按层遍历一次就好了。
/** * Definition for binary tree * 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> ans; if (root == nullptr) return ans; int cnt = 1; queue<TreeNode*> que; que.push(root); TreeNode* curr; while(!que.empty()) { int now_cnt = 0; for (int i = 0; i < cnt; i++) { curr = que.front(); que.pop(); if (curr->left) { que.push(curr->left); now_cnt++; } if (curr->right) { que.push(curr->right); now_cnt++; } } ans.push_back(curr->val); cnt = now_cnt; } return ans; } };
[leetcode]Binary Tree Right Side View
标签:
原文地址:http://www.cnblogs.com/x1957/p/4420101.html