★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
➤微信公衆號:山青詠芝(shanqingyongzhi)
➤博客園地址:山青詠芝(https://www.cnblogs.com/strengthen/)
➤GitHub地址:https://github.com/strengthen/LeetCode
➤原文地址:http://www.javashuo.com/article/p-qdndwimn-me.html
➤若是連接不是山青詠芝的博客園地址,則多是爬取做者的文章。
➤原文已修改更新!強烈建議點擊原文地址閱讀!支持做者!支持原創!
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★html
Given a binary tree where all the right nodes are either leaf nodes with a sibling (a left node that shares the same parent node) or empty, flip it upside down and turn it into a tree where the original right nodes turned into left leaf nodes. Return the new root.node
For example: Given a binary tree {1,2,3,4,5},git
1github
/ \微信
2 3ide
/ \spa
4 5code
return the root of the binary tree [4,5,2,#,#,3,1].htm
4blog
/ \
5 2
/ \
3 1
給定一個二叉樹,其中全部右節點要麼是具備兄弟節點的葉節點(共享同一父節點的左節點),要麼是空的,將其顛倒並將其轉換爲樹,其中原始右節點轉換爲左葉節點。返回新根。
例如:給定二叉樹{1,2,3,4,5 },
1
/ \
2 3
/ \
4 5
返回二叉樹的根 [4,5,2,#,#,3,1].
4
/ \
5 2
/ \
3 1
1 public class TreeNode { 2 public var val: Int 3 public var left: TreeNode? 4 public var right: TreeNode? 5 public init(_ val: Int) { 6 self.val = val 7 self.left = nil 8 self.right = nil 9 } 10 } 11 12 class Solution { 13 func upsideDownBinaryTree(_ root: TreeNode?) -> TreeNode? { 14 if root == nil || root!.left == nil {return root} 15 var l: TreeNode? = root!.left 16 var r: TreeNode? = root!.right 17 var res: TreeNode? = upsideDownBinaryTree(l) 18 l!.left = r 19 l!.right = root 20 root!.left = nil 21 root!.right = nil 22 return res 23 } 24 }