题目:
Invert a binary tree.
4 / 2 7 / / 1 3 6 9
to
4 / 7 2 / / 9 6 3 1
代码:
1 public TreeNode invertTree(TreeNode root) 2 { 3 TreeNode newroot = root; 4 if(root==null)return newroot; 5 helper(root,newroot); 6 return newroot; 7 8 } 9 10 public TreeNode helper(TreeNode root,TreeNode newroot) 11 { 12 if(root==null) return newroot; 13 TreeNode temp = root.left; 14 root.left=root.right; 15 root.right=temp; 16 helper(root.left,newroot); 17 helper(root.right,newroot); 18 return newroot; 19 20 }
解法二:
public class Solution { public TreeNode invertTree(TreeNode root) { if (root == null) { return null; } TreeNode left = root.left,right = root.right; root.left = invertTree(right); root.right = invertTree(left); return root; } }
reference: https://leetcode.com/discuss/40001/straightforward-dfs-recursive-iterative-bfs-solutions
解法二思路如下: