114. 二叉树展开为链表
给定一个二叉树,原地将它展开为链表。
例如,给定二叉树
1 / \ 2 5 / \ \ 3 4 6
将其展开为:
1 \ 2 \ 3 \ 4 \ 5 \ 6
解题思路:先得到二叉树前序遍历结果result,然后将遍历结果依次作为右孩子节点。
Python3代码如下:
# Definition for a binary tree node.
# class TreeNode(object):
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution(object):
def flatten(self, root):
"""
:type root: TreeNode
:rtype: None Do not return anything, modify root in-place instead.
"""
result = []
def preOrder(root):
if root:
result.append(root.val)
preOrder(root.left)
preOrder(root.right)
preOrder(root)
if not root:
return None
root.left = None
for i in range(1,len(result)):
node = TreeNode(result[i])
root.right = node
root = root.right