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

BiNode

时间:2020-05-03 14:28:06      阅读:83      评论:0      收藏:0      [点我收藏+]

标签:__init__   求值   bsp   搜索   nbsp   class   转换   code   append   

二叉树数据结构TreeNode可用来表示单向链表(其中left置空,right为下一个链表节点)。实现一个方法,把二叉搜索树转换为单向链表,
要求值的顺序保持不变,转换操作应是原址的,也就是在原始的二叉搜索树上直接修改。 返回转换后的单向链表的头节点。 注意:本题相对原题稍作改动   示例: 输入: [
4,2,5,1,3,null,6,0] 输出: [0,null,1,null,2,null,3,null,4,null,5,null,6] 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/binode-lcci 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

 

解释:本题使用的中序遍历可以满足输出的数字是有序的。遍历的返回是从叶子节点开始的。

def convertBiNode(self, root: TreeNode) -> TreeNode:
        head=TreeNode(None)
        pre=head
        cur=root
        stack=[]
        while cur or stack:
            while cur:
                stack.append(cur)
                cur=cur.left
            cur=stack.pop()
            cur.left=None
            pre.right=cur
            pre=cur
            cur=cur.right
        return head.right

 

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None

class Solution:
    def convertBiNode(self, root: TreeNode) -> TreeNode:
        head=TreeNode(None)
        self.pre=head
        self.inorder(root)
        return head.right

    def inorder(self,root):
        if root:
            self.inorder(root.left)
            root.left=None
            self.pre.right=root
            self.pre=root
            self.inorder(root.right)

 

BiNode

标签:__init__   求值   bsp   搜索   nbsp   class   转换   code   append   

原文地址:https://www.cnblogs.com/topass123/p/12821826.html

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