91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

大數據中樹的翻轉樹算法怎么實現

發布時間:2021-11-23 11:04:10 來源:億速云 閱讀:154 作者:小新 欄目:大數據

這篇文章主要為大家展示了“大數據中樹的翻轉樹算法怎么實現”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“大數據中樹的翻轉樹算法怎么實現”這篇文章吧。

算法:

個人覺得這種類型題目的根本在于對題目的理解,所以理解翻轉二叉樹的定義就很重要。

 我們先看下什么是翻轉二叉樹:翻轉的意思就是根節點不變,左右子樹交換位置,當然這里的左右子樹也得是翻轉之后的二叉樹。

解法:

1.空節點和單個節點的二叉樹是不需要翻轉的。2.1)兩個以上的節點的二叉樹,首先翻轉各自的左右子樹,  2)然后與根節點的左右子樹交換位置。

題目1:

https://leetcode-cn.com/problems/invert-binary-tree/

大數據中樹的翻轉樹算法怎么實現

代碼實現:

/** * Definition for a binary tree node. * type TreeNode struct { *     Val int *     Left *TreeNode *     Right *TreeNode * } */func invertTree(root *TreeNode) *TreeNode {    // 1.根節點是nil直接返回    if root == nil {         return root    }    // 2. 左右節點先翻轉子樹,再翻轉孩子    l := invertTree(root.Left)    r := invertTree(root.Right)    root.Left,root.Right = r,l    return root }

執行結果:

大數據中樹的翻轉樹算法怎么實現

題目2:

解法:

是題目1的變形題目:二叉樹部分翻轉我們觀察翻轉二叉樹會發現,翻轉后的節點他們所處的層次沒有變化,只是左右交換了位置,基于這個原因,我們將本題目拆分成。1.兩棵樹的左子樹與右子樹都相同。2.兩棵樹的左子樹==右子樹,并且右子樹==左子樹。3.兩棵樹都為nil的話,是相同的。4.兩棵樹一棵為nil,則不相同。5.兩棵樹的根節點數值不相同則整棵樹就不相同。

https://leetcode-cn.com/problems/flip-equivalent-binary-trees/

大數據中樹的翻轉樹算法怎么實現

代碼實現:

/** * Definition for a binary tree node. * type TreeNode struct { *     Val int *     Left *TreeNode *     Right *TreeNode * } */func flipEquiv(root1 *TreeNode, root2 *TreeNode) bool {    // 1. root1,root2 都為nil的情況    if root1 == root2 {        return true    }    // 2. root1,root2有一個為nil,另一個不為nil 或者 root1與root2不相同    if root1 == nil || root2 == nil || root1.Val != root2.Val {        return false    }    // 3. root1,root2都相同,進一步檢查他們的孩子,無非就是下面兩種    return (flipEquiv(root1.Left,root2.Left) && flipEquiv(root1.Right,root2.Right)) ||    (flipEquiv(root1.Right,root2.Left)&& flipEquiv(root1.Left,root2.Right))}

執行結果:

大數據中樹的翻轉樹算法怎么實現

以上是“大數據中樹的翻轉樹算法怎么實現”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

安顺市| 通许县| 武汉市| 绥滨县| 扎赉特旗| 通化县| 阳朔县| 腾冲县| 比如县| 彭州市| 颍上县| 廊坊市| 镇雄县| 彰武县| 邻水| 淮安市| 黔西县| 海安县| 永顺县| 逊克县| 柳江县| 策勒县| 阿城市| 桐城市| 石阡县| 同仁县| 宜兰市| 塘沽区| 科技| 尚志市| 固安县| 伊春市| 康平县| 故城县| 湾仔区| 高陵县| 龙门县| 徐州市| 千阳县| 吉首市| 广灵县|