千家信息网

LeetCode中如何翻转二叉树

发表于:2025-02-03 作者:千家信息网编辑
千家信息网最后更新 2025年02月03日,这篇文章主要介绍LeetCode中如何翻转二叉树,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!题目描述:翻转一棵二叉树。示例:输入:输出:思路分析:通过观察,我们发现只要把二叉
千家信息网最后更新 2025年02月03日LeetCode中如何翻转二叉树

这篇文章主要介绍LeetCode中如何翻转二叉树,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

题目描述:

翻转一棵二叉树。

示例:

输入:

输出:

思路分析:

通过观察,我们发现只要把二叉树上的每一个节点的左右子节点进行交换,最后的结果就是完全翻转之后的二叉树

这道题目比较简单,关键思路在于我们发现翻转整棵树就是交换每个节点的左右子节点,于是我们把交换左右子节点的代码放在了前序遍历的位置。

值得一提的是,如果把交换左右子节点的代码放在后序遍历的位置也是可以的,但是放在中序遍历的位置是不行的。

Java实现

/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode() {}
* TreeNode(int val) { this.val = val; }
* TreeNode(int val, TreeNode left, TreeNode right) {
* this.val = val;
* this.left = left;
* this.right = right;
* }
* }
*/
class Solution {
public TreeNode invertTree(TreeNode root) {
if(root==null){
return root;
}
TreeNode tmp=root.left;
root.left=root.right;
root.right=tmp;
invertTree(root.left);
invertTree(root.right);
return root;
}
}

Python实现

class Solution:
def invertTree(self, root: TreeNode) -> TreeNode:
if not root:
return root

left = self.invertTree(root.left)
right = self.invertTree(root.right)
root.left, root.right = right, left
return root

以上是"LeetCode中如何翻转二叉树"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!

0