Invert a binary tree.
4 / 2 7 / / 1 3 6 9
to
4 / 7 2 / / 9 6 3 1
思路:利用temp进行交换,采用递归从顶至下,终止条件本身为空或者是叶子节点。
时间复杂度:O(n)
代码:
public TreeNode invertTree(TreeNode root) { if(root==null || (root.left==null && root.right==null)) return root; TreeNode tempNode=null; tempNode=root.left; root.left=root.right; root.right=tempNode; invertTree(root.left); invertTree(root.right); return root; }
优化:
扩展: