/**
* Definition for a binary tree node.
* type TreeNode struct {
* Val int
* Left *TreeNode
* Right *TreeNode
* }
*/
func preorderTraversal(root *TreeNode) []int {
return pre2(root)
// vals := []int{}
// pre1(root, &vals)
// return vals
}
func pre2(root *TreeNode) []int {
if root == nil {
return nil
}
stack := []*TreeNode{}
vals := []int{}
stack = append(stack, root)
for len(stack)>0 {
node := stack[len(stack)-1]
stack = stack[:len(stack)-1]
vals = append(vals, node.Val)
if node.Right != nil {
stack = append(stack, node.Right)
}
if node.Left != nil {
stack = append(stack, node.Left)
}
}
return vals
}
func pre1(root *TreeNode, vals *[]int) {
if root == nil {
return
}
*vals = append(*vals, root.Val)
pre1(root.Left, vals)
pre1(root.Right, vals)
}
144. 二叉樹的前序遍歷
相關文章
- 【模板題】- 144. 二叉樹的前序遍歷二叉樹
- Leetcode——144. 二叉樹的前序遍歷LeetCode二叉樹
- LeetCode題144. 二叉樹的前序遍歷LeetCode二叉樹
- 144.二叉樹的前序遍歷145.二叉樹的後序遍歷 94.二叉樹的中序遍歷二叉樹
- 144. 二叉樹的前序遍歷(java實現)--LeetCode二叉樹JavaLeetCode
- 二叉樹的建立、前序遍歷、中序遍歷、後序遍歷二叉樹
- 二叉樹建立,前序遍歷,中序遍歷,後序遍歷 思路二叉樹
- 根據二叉樹的前序遍歷和中序遍歷輸出二叉樹;二叉樹
- 【LeetCode-二叉樹】二叉樹前序遍歷LeetCode二叉樹
- 個人練習之二叉樹的前序遍歷二叉樹
- LintCode 前序遍歷和中序遍歷樹構造二叉樹二叉樹
- 根據前序遍歷序列、中序遍歷序列,重建二叉樹二叉樹
- 關於二叉樹的前序遍歷、中序遍歷、刪除元素、插入元素二叉樹
- 演算法根據樹的前序遍歷構建二叉樹演算法二叉樹
- 二叉樹的前序、中序、後序三種遍歷二叉樹
- 程式碼隨想錄演算法訓練營day14 | leetcode 144. 二叉樹的前序遍歷、145. 二叉樹的後序遍歷、94. 二叉樹的中序遍歷演算法LeetCode二叉樹
- 二叉樹:構造二叉樹(通過前序和中序遍歷)、映象翻轉、層次遍歷二叉樹
- 資料結構與演算法——二叉樹的前序遍歷,中序遍歷,後序遍歷資料結構演算法二叉樹
- 二叉樹的前序,中序,後序遍歷方法總結二叉樹
- 劍指offer:輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。二叉樹
- Construct Binary Tree from Preorder and Inorder Traversal(前序遍歷和中序遍歷樹構造二叉樹)...Struct二叉樹
- 二叉樹的遍歷二叉樹
- 889. 根據前序和後序遍歷構造二叉樹二叉樹
- 二叉樹---遍歷二叉樹
- 二叉樹遍歷二叉樹
- 完全二叉樹的遍歷二叉樹
- PAT 1043 Is It a Binary Search Tree (25分) 由前序遍歷得到二叉搜尋樹的後序遍歷
- 玩轉二叉樹(樹的遍歷)二叉樹
- 二叉樹的廣度遍歷和深度遍歷()二叉樹
- 二叉樹遍歷方法二叉樹
- 二叉樹遍歷 -- JAVA二叉樹Java
- JAVA遍歷二叉樹Java二叉樹
- C++樹——遍歷二叉樹C++二叉樹
- 【樹01】對二叉樹前序/中序/後序遍歷演算法的一些思考二叉樹演算法
- 刷題系列 - Python用非遞迴實現二叉樹前序遍歷Python遞迴二叉樹
- 【根據前序和中序遍歷構造二叉樹】棧+迭代 || 遞迴二叉樹遞迴
- 二叉樹的遍歷實現二叉樹
- 二叉樹的遍歷筆記二叉樹筆記