网站开发报价单 doc,品牌展板设计制作,wordpress顶部图片大小,建e网室内设计网官网下载给你一棵 完美 二叉树的根节点 root #xff0c;请你反转这棵树中每个 奇数 层的节点值。
例如#xff0c;假设第 3 层的节点值是 [2,1,3,4,7,11,29,18] #xff0c;那么反转后它应该变成 [18,29,11,7,4,3,1,2] 。
反转后#xff0c;返回树的根节点。
完美 二叉树需满足…给你一棵 完美 二叉树的根节点 root 请你反转这棵树中每个 奇数 层的节点值。
例如假设第 3 层的节点值是 [2,1,3,4,7,11,29,18] 那么反转后它应该变成 [18,29,11,7,4,3,1,2] 。
反转后返回树的根节点。
完美 二叉树需满足二叉树的所有父节点都有两个子节点且所有叶子节点都在同一层。
节点的 层数 等于该节点到根节点之间的边数。 示例 1 输入root [2,3,5,8,13,21,34]
输出[2,5,3,8,13,21,34]
解释
这棵树只有一个奇数层。
在第 1 层的节点分别是 3、5 反转后为 5、3 。
思路一DFS
c解法
class Solution {
public:TreeNode* reverseOddLevels(TreeNode* root) {dfs(root-left, root-right, true);return root;}void dfs(TreeNode* root1, TreeNode* root2, bool isOdd){if(root1 nullptr)return;if(isOdd)swap(root1-val, root2-val);dfs(root1-left, root2-right, !isOdd);dfs(root1-right, root2-left, !isOdd);}
};