leetcode-199. 二叉樹的右檢視
阿新 • • 發佈:2018-12-30
思路:列印每一層的最後一個節點即可。
/** * 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==NULL) return {}; queue<TreeNode*> q; vector<int> ans; q.push(root); int cnt=q.size();//cnt表示每一層的節點數 while(!q.empty()){ TreeNode *cur=q.front(); q.pop(); if(cur->left) q.push(cur->left); if(cur->right) q.push(cur->right); if(--cnt==0) { ans.push_back(cur->val); //只打印每層的最後一個節點 cnt=q.size();//更新每層的節點數 } } return ans; } };