题目含义如图:
解题思路:
- 二叉树层次遍历,输出每一层的最后一个元素即可;
- 参考层次遍历代码
struct TreeNode
{
int val;
TreeNode* left;
TreeNode* right;
TreeNode(int x): val(x), left(NULL), right(NULL) {}
};
vector<int> findRightNode(TreeNode* root)
{
vector<int> ret;
vector<int> level;
if(root == NULL)
return ret;
queue<TreeNode*> q;
q.push(root);
q.push(NULL);
while(!q.empty())
{
TreeNode* temp = q.front();
q.pop();
if(temp != NULL)
{
level.push_back(temp->val);
if(temp->left)
q.push(temp->left)
if(temp->right)
q.push(temp->right)
}
else
{
ret.push_back(level[level.size() - 1]);
if(!q.empty())
{
level.clear();
q.push(NULL);
}
}
}
return ret;
}