# Definition for a binary tree node. # 前序解析xml的含意是先解析xml根连接点,接着解析xml左子树,最后是右子树 # 因此这道题能够用递归的方法 马上解出去。 class TreeNode: def __init__(self, x): self.val = x self.left = None self.right = None from typing import List class Solution: def preorderTraversal1(self, root: TreeNode) - List[int]: self.res = [] self.dfs(root) return self.res def dfs(self,root): if not root :return # 先解析xml根连接点 self.res.append(root.val) # 接着解析xml左子树 self.dfs(root.left) # 接着是右子树 self.dfs(root.right) # 下边是迭代更新升级的方法 。 def preorderTraversal(self, root: TreeNode) - List[int]: if not root :return [] # 将根连接点压进栈 stack,res = [root],[] # 当栈为空的状况下,寓意着所有的联接点都解析xml了 while stack: # 弹出来来联接点 node = stack.pop() # 辨别联接点不是是为空 if node: # 将联接点放入文件目录 res.append(node.val) # 将右联接点压进栈 if node.right : stack.append(node.right) # 将左联接点压进栈 if node.left : stack.append(node.left) return res
(责任编辑:admin) |