二叉树的右视图 (leetcode 199)
一:解题思路
以二叉树的广度优先的思想来做,即二叉树的层序遍历的思想来做,只把没一层的最后一个结点放入到最后的集合当中。
二:完整代码示例 (C++版和Java版)
C++:
class Solution { public: vector<int> rightSideView(TreeNode* root) { vector<int> result; if (root == NULL) return result; queue<TreeNode*> queue; queue.push(root); while (!queue.empty()) { int size = queue.size(); for (int i = 0; i < size; i++) { TreeNode* node = queue.front(); queue.pop(); if (node->left != NULL) queue.push(node->left); if (node->right != NULL) queue.push(node->right); if (i == size - 1) result.push_back(node->val); } } return result; } };

浙公网安备 33010602011771号