当前位置:   article > 正文

LeetCode 156:上下翻转二叉树

上下翻转二叉树

题目

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. 1
  2. / \
  3. 2 3
  4. / \
  5. 4 5

return the root of the binary tree [4,5,2,#,#,3,1].

  1. 4
  2. / \
  3. 5 2
  4. / \
  5. 3 1

解答

右结点要么为空,要么是有左兄弟的叶结点。把题目中的树拆成一个个小三角形(父结点、左子结点、右子结点)来分别翻转

方法一:迭代

先把

  1. 1
  2. / \
  3. 2 3

 变成

  1. 2
  2. / \
  3. 3 1

然后把

  1. 2
  2. / \
  3. 4 5
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/666971
推荐阅读
相关标签
  

闽ICP备14008679号