897. Increasing Order Search Tree
阿新 • • 發佈:2018-12-24
結果 解答 arr ray .com lin treenode bsp ear
Runtime: 200 ms, faster than 45.33% of Python3 online submissions forIncreasing Order Search Tree.
題目來源:
https://leetcode.com/problems/increasing-order-search-tree/
自我感覺難度/真實難度:medium/easy
題意:
分析:
自己的代碼:
優秀代碼:
# Definition for a binary tree node. # class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.right = None class Solution:def increasingBST(self, root): """ :type root: TreeNode :rtype: TreeNode """ array=self.inOrder(root) if not array: return newRoot=TreeNode(array[0]) curr=newRoot for i in range(1,len(array)): curr.right=TreeNode(array[i]) curr=curr.right return newRoot def inOrder(self,root): if not root: return [] res=[] res.extend(self.inOrder(root.left)) res.append(root.val) res.extend(self.inOrder(root.right)) return res
代碼效率/結果:
Runtime: 200 ms, faster than 45.33% of Python3 online submissions forIncreasing Order Search Tree.
class Solution: def increasingBST(self, root): dummy = TreeNode(0) self.prev = dummy def inorder(root): if not root: return None inorder(root.left) root.left = None self.prev.right = root self.prev = root inorder(root.right) inorder(root) return dummy.right
Runtime: 160 ms, faster than 63.16% of Python3 online submissions forIncreasing Order Search Tree.
自己優化後的代碼:
反思改進策略:
1.前序遍歷不熟悉,需要熟練編寫這個代碼
2.看不懂優化的第二個解答: .prev TreeNode(0)
897. Increasing Order Search Tree