[leetcode] 144.二叉树的前序遍历
生活随笔
收集整理的這篇文章主要介紹了
[leetcode] 144.二叉树的前序遍历
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
給你二叉樹的根節(jié)點?root?,返回它節(jié)點值的?前序?遍歷。
示例 1:
?
輸入:root = [1,null,2,3] 輸出:[1,2,3]示例 2:
輸入:root = [] 輸出:[]示例 3:
輸入:root = [1] 輸出:[1]示例 4:
?
輸入:root = [1,2] 輸出:[1,2]示例 5:
輸入:root = [1,null,2] 輸出:[1,2]提示:
- 樹中節(jié)點數目在范圍?[0, 100]?內
- -100 <= Node.val <= 100
1.遞歸解法
class Solution:def preorderTraversal(self, root: TreeNode) -> List[int]:self.res = []self.dfs(root)return self.resdef dfs(self,node:TreeNode):if node is None:returnself.res.append(node.val)self.dfs(node.left)self.dfs(node.right)2.非遞歸解法--棧
class Solution:def preorderTraversal(self, root: TreeNode) -> List[int]:"""root->left->right入棧順序root->right->left"""res = []if root is None:return resstack = []stack.append(root)while len(stack)!=0:node = stack.pop()res.append(node.val)if node.right != None:stack.append(node.right)if node.left != None:stack.append(node.left)return res總結
以上是生活随笔為你收集整理的[leetcode] 144.二叉树的前序遍历的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: leetcode[217].存在重复元素
- 下一篇: [leetcode]145.二叉树的后序