翻转二叉树
题目描述
翻转一棵二叉树。
示例:
输入:
4
/ \
2 7
/ \ / \
1 3 6 9
输出:
4
/ \
7 2
/ \ / \
9 6 3 1
解题思路
个人AC
DFS
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
class Solution {
public TreeNode invertTree(TreeNode root) {
if (root == null) return null;
TreeNode tmp = root.left;
root.left = invertTree(root.right);
root.right = invertTree(tmp);
return root;
}
}
时间复杂度: O ( n ) O(n) O(n);
空间复杂度: O ( n ) O(n) O(n)。
最优解
同上。

本文详细介绍了如何使用深度优先搜索(DFS)算法翻转二叉树,通过递归方式交换二叉树节点的左右子树,实现二叉树的完全翻转。算法的时间复杂度为O(n),空间复杂度同样为O(n)。
806

被折叠的 条评论
为什么被折叠?



