114二叉樹的前序遍歷

# Definition for a binary tree node.# 前序遍歷的意思是先遍歷根節點,而後遍歷左子樹,最後是右子樹# 所以這道題能夠用遞歸的方法直接解出來。class TreeNode:    def __init__(self, x):        self.val = x        self.left = None        self.right = Nonefrom typing import Listclass Solution:    def preorderTraversal1(self, root: TreeNode) -> List[int]:        self.res = []        self.dfs(root)        return self.res    def dfs(self,root):        if not root :return        # 先遍歷根節點        self.res.append(root.val)        # 而後遍歷左子樹        self.dfs(root.left)        # 而後是右子樹        self.dfs(root.right)    # 下邊是迭代的方法。    def preorderTraversal(self, root: TreeNode) -> List[int]:        if not root :return []        # 將根節點壓入棧        stack,res = [root],[]        # 當棧爲空的時候,表明全部的節點都遍歷了        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
相關文章
相關標籤/搜索