题目如下:
这个题目很有意思,就是我们可以先用先序遍历遍历整棵树,然后再重新进行原地修改,就可以了。代码如下:
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
class Solution:
def flatten(self, root: TreeNode) -> None:
"""
Do not return anything, modify root in-place instead.
"""
cur=root
def dfs(root,ls):
if root==None:
return None
ls.append(root.val)
dfs(root.left,ls)
dfs(root.right,ls)
ls=[]
dfs(root,ls)
for i in ls:
print(i)
i=0
while i<len(ls):
if i!=0:
root.right=TreeNode(ls[i])
root.left=None
root=root.right
if i==0:
root.left==None
i+=1
这样就可以了,有一个坑就是在进行原地修改的时候,一定要记得讲root.left进行删除,令其=none,不然难以得到正确的结果