156. Binary Tree Upside Down
Posted Machelsky
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了156. Binary Tree Upside Down相关的知识,希望对你有一定的参考价值。
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
思路:不是特别理解怎么翻转,用recursive做的。完全按照题目给的例子来。翻转左子树,然后原来的root.left重新分配指向。
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ public class Solution { public TreeNode upsideDownBinaryTree(TreeNode root) { if(root==null||root.left==null&&root.right==null) { return root; } TreeNode check=upsideDownBinaryTree(root.left); root.left.left=root.right; root.left.right=root; root.left=null; root.right=null; return check; } }
以上是关于156. Binary Tree Upside Down的主要内容,如果未能解决你的问题,请参考以下文章
java 156. Binary Tree Upside Down.java
java 156. Binary Tree Upside Down.java