2415. 反转二叉树的奇数层 --力扣 --JAVA
2023-12-16 04:53:46
题目
给你一棵?完美?二叉树的根节点?
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);
}
}
文章来源:https://blog.csdn.net/qq_45794129/article/details/135026993
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!