前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >打卡群刷题总结0813——二叉树展开为链表

打卡群刷题总结0813——二叉树展开为链表

作者头像
木又AI帮
发布2020-08-17 17:26:20
3360
发布2020-08-17 17:26:20
举报
文章被收录于专栏:木又AI帮

题目:114. 二叉树展开为链表

链接:https://leetcode-cn.com/problems/flatten-binary-tree-to-linked-list

给定一个二叉树,原地将它展开为一个单链表。 例如,给定二叉树 1 / \ 2 5 / \ \ 3 4 6 将其展开为: 1 \ 2 \ 3 \ 4 \ 5 \ 6

题目没有表述清楚,必须是按照前序遍历的顺序生成结果,同时利用的是右孩子指针。

解题:

1、可以用栈,也可以直接在前序遍历的基础上更改(注意要保存node.right,别被新指针覆盖了)

代码:

代码语言:javascript
复制
# Definition for a binary tree node.# class TreeNode(object):#     def __init__(self, val=0, left=None, right=None):#         self.val = val#         self.left = left#         self.right = rightclass Solution(object):    def traverse(self, node, parent):        parent.right = node        last_node = node        right = node.right        if node.left:            last_node = self.traverse(node.left, last_node)            node.left = None        if right:            last_node = self.traverse(right, last_node)        return last_node        def flatten(self, root):        """        :type root: TreeNode        :rtype: None Do not return anything, modify root in-place instead.        """        if not root:            return root        parent = ListNode(0)        self.traverse(root, parent)        return parent.right

PS:刷了打卡群的题,再刷另一道题,并且总结,确实耗费很多时间。如果时间不够,以后的更新会总结打卡群的题。

PPS:还是得日更呀,总结一下总是好的。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-08-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 木又AI帮 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档