美文网首页
将一个二叉查找树按照中序遍历转换成双向链表。

将一个二叉查找树按照中序遍历转换成双向链表。

作者: goodAndBad | 来源:发表于2017-11-16 12:56 被阅读0次

2017.11.16


image.png
"""
Definition of TreeNode:
class TreeNode:
    def __init__(self, val):
        this.val = val
        this.left, this.right = None, None
Definition of Doubly-ListNode
class DoublyListNode(object):

    def __init__(self, val, next=None):
        self.val = val
        self.next = self.prev = next
"""

class Solution:
    """
    @param root, the root of tree
    @return: a doubly list node
    """
    a = []
    def bstToDoublyList(self, root):
        # Write your code here
        if root == None:
            return None
        self.left(root)
        b = self.a[0]
        if len(self.a) == 1:
            return b
        for i in range(len(self.a)):
            if i == 0:
                self.a[i].next = self.a[i+1]
                continue
            if i == len(self.a) - 1:
                self.a[i].prev = self.a[i-1]
                continue
            self.a[i].next = self.a[i+1]
            self.a[i].prev = self.a[i-1]
            
        return b
                
    def left(self,root):
        if root == None:
            return
        self.left(root.left)
        self.a.append(DoublyListNode(root.val))
        self.right(root.right)
    def right(self,root):
        if root == None:
            return
        self.left(root.left)
        self.a.append(DoublyListNode(root.val))
        self.right(root.right)

一个能打的都没有。2017.11.16

相关文章

  • 将二叉查找树转换成双向链表

    Lintcode上的一道题,昨天下班之前顺手做了一下:将一个二叉查找树按照中序遍历转换成双向链表。 思路:递归中序...

  • 109. Convert Sorted List to Bina

    单链表转化成二叉搜索树,这种做法是把链表里的值存到一个数组中,然后将数组转换成二叉搜索树。其实写法上应该是中序遍历...

  • 链表和二叉树

    单向链表 链表反转 二叉树定义 1、递归中序遍历 2、迭代中序遍历 3、二叉树层序遍历 4、判断一棵树是否为平衡树...

  • 阿里达摩院常见算法题

    一、二叉树中序遍历 二、二叉树层序遍历 广度优先 三、翻转二叉树 四、反转链表 五、岛屿数量 我们可以将二维网格看...

  • 将一个二叉查找树按照中序遍历转换成双向链表。

    2017.11.16 一个能打的都没有。2017.11.16

  • 二叉树

    二叉树 二叉搜索树与双向链表 「栈实现中序遍历」 树的子结构 判断B是不是A的子结构 二叉树的最近公共祖先 后序遍...

  • 27 二叉搜索树与双向链表(二叉树的线索化)

    二叉搜索树与双向链表 题目描述: 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的...

  • 剑指offer.C++.code26-30

    26. 二叉搜索树与双向链表【分治法】 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任...

  • 面试题36. 二叉搜索树与双向链表

    二叉搜索树与双向链表 题目描述 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的循环双向链表。要求不能创建任何新...

  • 排序二叉树转换为排序双向链表

    题目:输入一棵二叉排序树,将该二叉排序树转换成一个排序的带头结点的双向链表。如: 转换成双向链表4<->6<->8...

网友评论

      本文标题:将一个二叉查找树按照中序遍历转换成双向链表。

      本文链接:https://www.haomeiwen.com/subject/avjlvxtx.html