Day128 | 灵神 | 二叉树 | 反转二叉树的奇数层
2415.反转二叉树的奇数层
2415. 反转二叉树的奇数层 - 力扣(LeetCode)
思路:
层序遍历的话就交换对应节点的值吧,就如果是奇数层的话,就把节点都弄到vector里面,然后反转节点的值
完整代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| 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; } };
|