leetcode——226 Invert Binary Tree(翻轉二叉樹,會做就能進Google哦~~),leetcodeinvert

來源:互聯網
上載者:User

leetcode——226 Invert Binary Tree(翻轉二叉樹,會做就能進Google哦~~),leetcodeinvert
Invert a binary tree.


4/   \ 2     7 / \       /  \1   3    6  9to   4   /   \  7     2   /  \    /   \    9   6   3   1Trivia:
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 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;}

方法二代碼:

public static TreeNode invertTree1(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;}


列隊說明:隊列是一種特殊的線性表,它只允許在表的前端(front)進行刪除操作,而在表的後端(rear)進行插入操作。進行插入操作的端稱為隊尾,進行刪除操作的端稱為隊頭。隊列中沒有元素時,稱為空白隊列。


在隊列這種資料結構中,最先插入的元素將是最先被刪除的元素;反之最後插入的元素將是最後被刪除的元素,因此隊列又稱為“先進先出”(FIFO—first in first out)的線性表。


在java5中新增加了java.util.Queue介面,用以支援隊列的常見操作。該介面擴充了java.util.Collection介面。

Queue使用時要盡量避免Collection的add()和remove()方法,而是要使用offer()來加入元素,使用poll()來擷取並移出元素。它們的優點是通過返回值可以判斷成功與否,add()和remove()方法在失敗的時候會拋出異常。
 如果要使用前端而不移出該元素,使用element()或者peek()方法。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.