class Solution(object):
def removeDuplicates(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
i = 0
for num in nums:
if i < 2 or num != nums[i-2]:
nums[i] = num
i += 1
return i
#遞歸版本
class Solution(object):
def preorderTraversal(self, root):
"""
:type root: TreeNode
:rtype: List[int]
"""
res = []
self.dfs(root,res)
return res
def dfs(self,root,res):
if not root:
return
res.append(root.val)
self.dfs(root.left,res)
self.dfs(root.right,res)
#非遞歸
class Solution(object):
def preorderTraversal(self, root):
"""
:type root: TreeNode
:rtype: List[int]
"""
if not root:
return []
res = []
stack = [root]
while stack:
a = stack.pop()
if a.right:
stack.append(a.right)
if a.left:
stack.append(a.left)
res.append(a.val)
return res