LeetCode 114. Flatten Binary Tree to Linked List 拉平二叉树 Python Solution
来源:互联网 发布:知乎 查过敏源 编辑:程序博客网 时间:2024/06/05 17:19
此题目对应于LeetCode 114
题目要求拉平一个二叉树,很容易拉平后的二叉树在序列上顺序是输入二叉树的一个前序遍历,同时题目要求就地修改原二叉树,
这一点值得注意。
解题思路:
1.先获取二叉树的前序遍历。这个部分可以参考我的另一篇博文Binary Tree Traversal 二叉树遍历
2.根据前序遍历序列对二叉树进行就地修改。由于是就地修改所以只能对root的后续节点进行操作,不能修改root节点。
# Definition for a binary tree node.# class TreeNode(object):# def __init__(self, x):# self.val = x# self.left = None# self.right = Noneclass Solution(object): def flatten(self, root): res = [] mystack = [] cur = root while cur or mystack:#获取二叉树的前序遍历 while cur: mystack.append(cur) res.append(cur.val) cur = cur.left cur = mystack.pop().right if len(res)<=1: pass else: root.left = None for i in res[1:]:#就地修改二叉树 root.right = TreeNode(i) root = root.right """ :type root: TreeNode :rtype: void Do not return anything, modify root in-place instead. """
阅读全文
0 0
- LeetCode 114. Flatten Binary Tree to Linked List 拉平二叉树 Python Solution
- LeetCode 114. Flatten Binary Tree to Linked List(Python)
- LeetCode 114. Flatten Binary Tree to Linked List(摊平二叉树)
- leetcode 114. Flatten Binary Tree to Linked List 扁平化二叉树+前序遍历
- Flatten Binary Tree to Linked List (二叉树转前序链表)【leetcode】
- 【leetcode 二叉树摊直】Flatten Binary Tree to Linked List
- 【LeetCode with Python】 Flatten Binary Tree to Linked List
- Flatten Binary Tree to Linked List Leetcode Python
- 【Leetcode】【python】Flatten Binary Tree to Linked List
- LeetCode: Flatten Binary Tree to Linked List
- LeetCode Flatten Binary Tree to Linked List
- LeetCode: Flatten Binary Tree to Linked List
- [Leetcode] Flatten Binary Tree to Linked List
- [LeetCode] Flatten Binary Tree to Linked List
- Leetcode: Flatten Binary Tree to Linked List
- leetcode Flatten Binary Tree to Linked List
- LeetCode Flatten Binary Tree to Linked List
- LeetCode - Flatten Binary Tree to Linked List
- JS——数组(引用传递)
- spark基础之spark streaming的checkpoint机制
- 1004. Counting Leaves (30)
- Maven学习
- 分布式事务之——tcc-transaction分布式TCC型事务框架搭建与实战案例(基于Dubbo/Dubbox)
- LeetCode 114. Flatten Binary Tree to Linked List 拉平二叉树 Python Solution
- 根据字符长度,控制在TextView显示多少行
- JavaScript arguments对象
- Linux命令操作
- 0的timestamp类型时不能正确的处理zeroDateTimeBehavior
- 码流 / 码率 / 比特率 / 帧速率 / 分辨率 / 高清的区别
- Nginx配置阿里云https服务
- 什么是顶级域名和一级域名,如何区分
- 搭建Eclipse+ADT+Android SDK 安卓开发环境+创建andorid project