在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ 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. For example: Given a binary tree {1,2,3,4,5}, 1 / \ 2 3 / \ 4 5 return the root of the binary tree [4,5,2,#,#,3,1]. 4 / \ 5 2 / \ 3 1 给定一个二叉树,其中所有右节点要么是具有兄弟节点的叶节点(共享同一父节点的左节点),要么是空的,将其颠倒并将其转换为树,其中原始右节点转换为左叶节点。返回新根。 例如:给定二叉树{1,2,3,4,5 }, 1 / \ 2 3 / \ 4 5 返回二叉树的根 [4,5,2,#,#,3,1]. 4 / \ 5 2 / \ 3 1 Solution: 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 }
|
请发表评论