)
解题思路递归翻转二叉树前序和后序都是可以的但中序不行中序会导致左边始终没有处理所以如果一定要中序两次内部递归都要用root.left拆开写原地修改的返回值为 void 的就可以拆开写class Solution { public TreeNode invertTree(TreeNode root) { recur(root); return root; } public void recur(TreeNode root) { if (root null) return; TreeNode t root.left; root.left root.right; root.right t; recur(root.left); recur(root.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; } }