二叉樹的反轉(zhuǎn)

leetcode原題:(https://leetcode-cn.com/problems/invert-binary-tree/)

題解:使用層序遍歷的方式比較合適,其實只要交換每一層的左右子節(jié)點,因為交換每一串的左右子節(jié)點,左節(jié)點的左右子節(jié)點也會跟著交換過去,這時候只要把左節(jié)點的左子節(jié)點與右子節(jié)點交換,同時右節(jié)點也是如此操作即可達(dá)到題目要求。

class Solution {
    public TreeNode invertTree(TreeNode root) {
        // 本題使用層序遍歷的方式
        if(root == null){
            return root;
        }
        
        Queue<TreeNode> queue = new LinkedList<>();
        queue.offer(root);
        while(!queue.isEmpty()){
            TreeNode cur = queue.poll();
            TreeNode temp = cur.left;
            
            //   不需要考慮是否為空的,因為為空的話把空交換過去交換過去即可。
            cur.left = cur.right;
            cur.right = temp;
            
            if(cur.left != null){
                queue.offer(cur.left);
            }
            if(cur.right != null){
                queue.offer(cur.right);
            }
        }
        
        return root;
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 我的CSDN: ListerCi我的簡書: 東方未曦 一、二叉樹與遞歸 二叉樹與遞歸有著千絲萬縷的聯(lián)系,二叉樹在定...
    東方未曦閱讀 6,651評論 3 9
  • 2019 iOS面試題大全---全方面剖析面試2018 iOS面試題---算法相關(guān)1、七種常見的數(shù)組排序算法整理(...
    Theendisthebegi閱讀 10,593評論 0 17
  • 姓名: 李小娜 [嵌牛導(dǎo)讀] :這篇文章主要介紹了Java二叉排序樹,包括二叉排序樹的定義、二叉排序樹的性質(zhì)、二叉...
    n184閱讀 720評論 0 0
  • 什么是二叉樹? 在計算機(jī)科學(xué)中,二叉樹是每個節(jié)點最多有兩個子樹的樹結(jié)構(gòu)。通常子樹被稱作“左子樹”和“右子樹”,左子...
    小貓仔閱讀 639評論 0 0
  • 足夠強(qiáng)大之前,不要SHOW你的成長 。因為李笑來說:所謂的成長,其實就是超過身邊的人。有點難聽,但是就是這個意思。...
    地瓜愛思考閱讀 159評論 0 0

友情鏈接更多精彩內(nèi)容