【Leetcode】NO.199 二叉樹的右檢視 (C++&Python) [二叉樹]
阿新 • • 發佈:2022-01-05
二叉樹第四彈!!!
題目:199. 二叉樹的右檢視
給定一個二叉樹的 根節點 root,想象自己站在它的右側,按照從頂部到底部的順序,返回從右側所能看到的節點值。
思路
程式碼
C++ 版本
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), right(nullptr) {} * TreeNode(int x) : val(x), left(nullptr), right(nullptr) {} * TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {} * }; */ class Solution { public: vector<int> rightSideView(TreeNode* root) { // 層序遍歷,這個過程中出佇列的時候儲存最後一個元素 // 存放結果 vector<int> ans; //存放節點 queue<TreeNode*> que; if(root) que.push(root); while(!que.empty()) { int size = que.size(); // 這個size很關鍵 for(int i=0;i<size;i++) { TreeNode* node = que.front(); que.pop(); if(i==size-1) { ans.push_back(node->val); // 儲存答案 } if(node->left) que.push(node->left); if(node->right) que.push(node->right); } } for(int i=0;i<ans.size();i++) { cout<<ans[i]; } return ans; } };
本文來自部落格園,作者:jucw,轉載請註明原文連結:https://www.cnblogs.com/Jucw/p/15764597.html