Leetcode_226Invert Binary Tree

来源:互联网 发布:java种方法覆盖super 编辑:程序博客网 时间:2024/06/11 19:57

Invert a binary tree.

 4

/ \
2 7
/ \ / \
1 3 6 9
to
4
/ \
7 2
/ \ / \
9 6 3 1
Trivia:
This problem was inspired by this original tweet by Max Howell:
Google: 90% of our engineers use the software you wrote (Homebrew), but you can’t invert a binary tree on a whiteboard so fuck off.

非递归

public static TreeNode invertTree(TreeNode root)  {        if(root == null)         {             return null;         }         Queue<TreeNode> queue = new LinkedList<TreeNode>();         //向列队中添加元素         queue.offer(root);         while(!queue.isEmpty())         {            //获取并移出元素             TreeNode node = queue.poll();             TreeNode left = node.left;             node.left = node.right;             node.right = left;             if(node.left != null)              {                 queue.offer(node.left);             }             if(node.right != null)              {                 queue.offer(node.right);             }         }         return root;  }  

递归

 public TreeNode invertTree(TreeNode root)  {      if (root==null)      {          return null;      }      TreeNode left=root.left;      TreeNode right=root.right;      root.left=invertTree(right);      root.right=invertTree(left);      return root;  } 
0 0
原创粉丝点击