Invert a binary tree.
4 / / 2 7 / / / /1 3 6 9
to
4 / / 7 2 / / / /9 6 3 1
這道題呢=。=看著題目簡介挺有意思的。哈哈哈。~說實話我真的很討厭whiteboard上直接來代碼。
因為要翻轉的BTS已經給出來了,灰常短小的一個啊~所以按照自己的喜好whatever交換就好了。
因為這里BTS已經給出來了所以可以偷懶直接交換(畢竟這么短小),這個比較取巧。代碼如下。
public class Solution { public TreeNode invertTree(TreeNode root) { //invert directlyTreeNode left=root.left;TreeNode right=root.right;root.left=invertTree(right);root.right=invertTree(left);return root; //special case if(root==null){ return null; } }}然后呢貼一個常規思維來的,這是PRogram creek上的。我大概寫了一下,懶得run了。就貼一個確定accepted的答案好了。
這個就是踏踏實實一個一個看的。
public TreeNode invertTree(TreeNode root) { LinkedList<TreeNode> queue = new LinkedList<TreeNode>(); if(root!=null){ queue.add(root); } while(!queue.isEmpty()){ TreeNode p = queue.poll(); if(p.left!=null) queue.add(p.left); if(p.right!=null) queue.add(p.right); TreeNode temp = p.left; p.left = p.right; p.right = temp; } return root; }新聞熱點
疑難解答