Skip to content
YaoYilin edited this page Jun 13, 2018 · 2 revisions

翻转一棵二叉树。

示例:

输入:
     4
   /   \
  2     7
 / \   / \
1   3 6   9
输出:
 	 4
   /   \
  7     2
 / \   / \
9   6 3   1
public TreeNode InvertTree(TreeNode root)
{
    if(root == null)
        return null;
    var tree = root.left;
    root.left = root.right;
    root.right = tree;
    InvertTree(root.left);
    InvertTree(root.right);
    return root;
}

主要的思想就是缓存左节点,把右节点赋给左节点,缓存再赋给左节点,有点类似交换两个变量a、b的值。然后继续向子节点递归即可。

Clone this wiki locally