Day128 | 灵神 | 二叉树 | 反转二叉树的奇数层
Day128 | 灵神 | 二叉树 | 反转二叉树的奇数层
2415.反转二叉树的奇数层
2415. 反转二叉树的奇数层 - 力扣(LeetCode)
思路:
层序遍历的话就交换对应节点的值吧,就如果是奇数层的话,就把节点都弄到vector里面,然后反转节点的值
完整代码:
class Solution {
public:TreeNode* reverseOddLevels(TreeNode* root) {queue<TreeNode *> q;if(root==nullptr)return root;q.push(root);int count=0;while(!q.empty()){int size=q.size();vector<TreeNode*> arr;for(int i=0;i<size;i++){TreeNode *t=q.front();q.pop();if(count%2==1)arr.push_back(t);if(t->left)q.push(t->left);if(t->right)q.push(t->right);}if(count%2==1)for(int l=0,r=arr.size()-1;l<r;l++,r--)swap(arr[l]->val,arr[r]->val);count++;}return root;}
};