当前位置:   article > 正文

leetcode-114. 二叉树展开为链表

leetcode-114. 二叉树展开为链表

题目描述

给你二叉树的根结点 root ,请你将它展开为一个单链表:

  • 展开后的单链表应该同样使用 TreeNode ,其中 right 子指针指向链表中下一个结点,而左子指针始终为 null 。
  • 展开后的单链表应该与二叉树 先序遍历 顺序相同。

示例 1:

输入:root = [1,2,5,3,4,null,6]
输出:[1,null,2,null,3,null,4,null,5,null,6]

示例 2:

输入:root = []
输出:[]

示例 3:

输入:root = [0]
输出:[0]

思路

1)先序遍历二叉树到一个list里

2)遍历list,前一个节点为根,后一个节点为右孩子,在置左孩子为None

  1. # Definition for a binary tree node.
  2. # class TreeNode(object):
  3. # def __init__(self, val=0, left=None, right=None):
  4. # self.val = val
  5. # self.left = left
  6. # self.right = right
  7. class Solution(object):
  8. def __init__(self):
  9. self.res = []
  10. def pretraverse(self, root):
  11. if not root:
  12. return None
  13. self.res.append(root)
  14. self.pretraverse(root.left)
  15. self.pretraverse(root.right)
  16. def flatten(self, root):
  17. """
  18. :type root: TreeNode
  19. :rtype: None Do not return anything, modify root in-place instead.
  20. """
  21. self.pretraverse(root)
  22. for i in range(1, len(self.res)):
  23. pre,cur = self.res[i-1], self.res[i]
  24. pre.left = None
  25. pre.right = cur
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/908715
推荐阅读
相关标签
  

闽ICP备14008679号