码迷,mamicode.com
首页 > 其他好文 > 详细

二叉树展开为链表

时间:2020-05-16 19:06:45      阅读:50      评论:0      收藏:0      [点我收藏+]

标签:one   root   二叉树   nod   efi   att   solution   bin   重复   

二叉树展开为链表

LeetCode入口??????No.114

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

例如,给定二叉树

    1
   /   2   5
 / \   3   4   6

将其展开为:

1
   2
       3
           4
               5
                   6

思路

源自LeetCode题解

  1. 将左子树插入到右子树的地方
  2. 将原来的右子树接到左子树的最右边节点
  3. 考虑新的右子树的根节点,一直重复上边的过程,直到新的右子树为 null
    1
   /   2   5
 / \   3   4   6

//将 1 的左子树插入到右子树的地方
    1
           2         5
     / \             3   4         6        
//将原来的右子树接到左子树的最右边节点
    1
           2          
     / \          
    3   4  
                   5
                       6
            
 //将 2 的左子树插入到右子树的地方
    1
           2          
       \          
        3       4  
                                   5
                                       6   
        
 //将原来的右子树接到左子树的最右边节点
    1
           2          
       \          
        3      
                   4  
                       5
                           6         

python

# 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.
        """
        if not root:
            return None

        while root:
            #1.左子树空,考虑下个节点
            if not root.left:
                root = root.right
            #3.右子树接到原左子树的最右节点
            else:
                pre = root.left
                while pre.right:
                    pre = pre.right
                pre.right = root.right        
                #2.左子树插入到右子树的地方
                root.right = root.left
                root.left = None
                root = root.right

对称二叉

二叉树展开为链表

标签:one   root   二叉树   nod   efi   att   solution   bin   重复   

原文地址:https://www.cnblogs.com/gongyanzh/p/12901595.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!