1. 程式人生 > 實用技巧 >面試題 17.12. BiNode

面試題 17.12. BiNode

二叉樹資料結構TreeNode可用來表示單向連結串列(其中left置空,right為下一個連結串列節點)。實現一個方法,把二叉搜尋樹轉換為單向連結串列,要求依然符合二叉搜尋樹的性質,轉換操作應是原址的,也就是在原始的二叉搜尋樹上直接修改。

返回轉換後的單向連結串列的頭節點。

注意:本題相對原題稍作改動

示例:

輸入: [4,2,5,1,3,null,6,0]
輸出: [0,null,1,null,2,null,3,null,4,null,5,null,6]
提示:

節點數量不會超過 100000。

來源:力扣(LeetCode)
連結:https://leetcode-cn.com/problems/binode-lcci

# 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:
        self.cur=self.head=TreeNode(None)
        self.inOrder(root)
        
return self.head.right def inOrder(self,root): if not root:return self.inOrder(root.left) root.left=None self.cur.right=root self.cur=root self.inOrder(root.right)