【leetcode】114: 二叉树展开为链表
2023-09-11 14:21:08 时间
题目如下:
这个题目很有意思,就是我们可以先用先序遍历遍历整棵树,然后再重新进行原地修改,就可以了。代码如下:
# 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,不然难以得到正确的结果
相关文章
- [LeetCode] Invert Binary Tree - 二叉树翻转系列问题
- Leetcode 之Largest Rectangle in Histogram(40)
- leetcode 之LRU Cache(26)
- Java实现 LeetCode 814 二叉树剪枝 (遍历树)
- Java实现 LeetCode 806 写字符串需要的行数 (暴力模拟)
- Java实现 LeetCode 721 账户合并(并查集)
- Java实现 LeetCode 690 员工的重要性(简易递归)
- Java实现 LeetCode 617 合并二叉树(遍历树)
- Java实现 LeetCode 563 二叉树的坡度(又是一个遍历树)
- Java实现 LeetCode 326 3的幂
- Java实现 LeetCode 297 二叉树的序列化与反序列化
- Java实现 LeetCode 164 最大间距
- Java实现 LeetCode 124 二叉树中的最大路径和
- Java实现 LeetCode 114 二叉树展开为链表
- Java实现 LeetCode 104 二叉树的最大深度
- Java实现 LeetCode 102 二叉树的层次遍历
- 【二叉树】LeetCode 104. 二叉树的最大深度【简单】
- 【二叉树】LeetCode 101. 对称二叉树【简单】
- 【二叉树】LeetCode 94. 二叉树的中序遍历【简单】
- LeetCode-1145. 二叉树着色游戏【深度优先搜索,二叉树】
- ( “树” 之 前中后序遍历) 145. 二叉树的后序遍历 ——【Leetcode每日一题】
- ( “树” 之 DFS) 543. 二叉树的直径 ——【Leetcode每日一题】
- [LeetCode] 114. 二叉树展开为链表 ☆☆☆(深度遍历)
- LeetCode之Balanced Binary Tree 平衡二叉树
- leetcode算法之动态规划总结(11种DP类型,70道全部搞懂)——总结非常全面
- 【Leetcode刷题Python】144. 二叉树的前序遍历
- 【Leetcode刷题Python】35. 搜索插入位置
- 【Leetcode刷题Python】236. 二叉树的最近公共祖先
- 【LeetCode】958.二叉树的完全性检验