本文主要是介绍2415. 反转二叉树的奇数层 --力扣 --JAVA,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目
给你一棵 完美 二叉树的根节点
root
,请你反转这棵树中每个 奇数 层的节点值。
- 例如,假设第 3 层的节点值是
[2,1,3,4,7,11,29,18]
,那么反转后它应该变成[18,29,11,7,4,3,1,2]
。反转后,返回树的根节点。
完美 二叉树需满足:二叉树的所有父节点都有两个子节点,且所有叶子节点都在同一层。
节点的 层数 等于该节点到根节点之间的边数。
解题思路
- 奇数层,右子树的右子节点和左子树的左子节点交换,左子树的右子节点和右子树的左子节点交换。
代码展示
class Solution {public TreeNode reverseOddLevels(TreeNode root) {dfs(root.left,root.right,0);return root;}private void dfs(TreeNode left, TreeNode right, int index){if(left == null){return;}if(index % 2 == 0) {int temp = left.val;left.val = right.val;right.val = temp;}index++;dfs(left.left,right.right,index);dfs(left.right,right.left,index);}
}
这篇关于2415. 反转二叉树的奇数层 --力扣 --JAVA的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!