zoukankan      html  css  js  c++  java
  • 二叉树展开为链表

    题目:

    题目描述:

    给定一个二叉树,原地将它展开为链表。

    例如,给定二叉树

        

    将其展开为:

        

    代码如下:

    class Solution(object):
    
        def flatten(self, root):
    
            """
            :type root: TreeNode
    
            :rtype: None Do not return anything, modify root in-place instead.
    
            """
            #思路:由示例图可知:对于每一颗子树进行后序遍历,将右子树连接到左子树的右子树上,将左子树连接到根节点的右子树上;递归进行遍历
            if root == None:
                return None
            self.flatten(root.left)
            self.flatten(root.right)
            if root.left != None:
                p = root.left
                while p.right != None:
                    p = p.right
                p.right = root.right
                root.right = root.left
                root.left = None
  • 相关阅读:
    Java 线程池学习
    Java线程:新特征-线程池
    创建Java线程池
    JAVA-线程安全性
    java线程安全总结
    栈和队列
    历年题目
    蓝桥杯算法训练
    hdu2083 暴力水
    poj 2299
  • 原文地址:https://www.cnblogs.com/tsdblogs/p/12390851.html
Copyright © 2011-2022 走看看