Leetcode 199. 二叉树的右视图 解题思路及C++实现
生活随笔
收集整理的這篇文章主要介紹了
Leetcode 199. 二叉树的右视图 解题思路及C++实现
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
解題思路:
使用層序遍歷,得到每一層的最后邊的節點,然后push_back到結果容器中。
通過使用q.size()函數,只需要一個隊列即可實現層序遍歷。
?
/*** 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:vector<int> rightSideView(TreeNode* root) {//層序遍歷,得到每一層最右邊的節點值,即是結果if(!root) return {};vector<int> res;queue<TreeNode*> q;q.push(root);while(!q.empty()){res.push_back((q.back())->val);int n = q.size(); //通過使用size(),只需要一個隊列即可for(int i = 0; i < n; i++){TreeNode* temp = q.front();q.pop();if(temp->left) q.push(temp->left);if(temp->right) q.push(temp->right);}}return res;} };?
?
總結
以上是生活随笔為你收集整理的Leetcode 199. 二叉树的右视图 解题思路及C++实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Leetcode 129. 求根到叶子节
- 下一篇: Leetcode 109. 有序链表转换