首页 > 代码库 > leetcode 156: Binary Tree Upside Down
leetcode 156: Binary Tree Upside Down
Binary Tree Upside Down
Total Accepted: 813 Total Submissions: 2515Given 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
confused what "{1,#,2,3}"
means? > read more on how binary tree is serialized on OJ.
[分析]
搞清此树的定义,答案自明.
[注意]
None
[CODE]
/** * Definition for binary tree * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ public class Solution { public TreeNode UpsideDownBinaryTree(TreeNode root) { Stack<TreeNode> stack = new Stack<TreeNode>(); if(root==null) return null; while(root.left != null) {stack.push(root); root=root.left;} stack.push(root); while(!stack.empty()) { TreeNode node = stack.pop(); if(!stack.empty()) { node.right = stack.peek(); node.left = stack.peek().right; } else { node.left = null; node.right = null; } } return root; } }
leetcode 156: Binary Tree Upside Down
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。