mirror of
https://github.com/halfrost/LeetCode-Go.git
synced 2025-07-29 15:14:53 +08:00
添加内容
This commit is contained in:
71
website/content/ChapterFour/0257.Binary-Tree-Paths.md
Executable file
71
website/content/ChapterFour/0257.Binary-Tree-Paths.md
Executable file
@ -0,0 +1,71 @@
|
||||
# [257. Binary Tree Paths](https://leetcode.com/problems/binary-tree-paths/)
|
||||
|
||||
|
||||
## 题目
|
||||
|
||||
Given a binary tree, return all root-to-leaf paths.
|
||||
|
||||
**Note**: A leaf is a node with no children.
|
||||
|
||||
**Example**:
|
||||
|
||||
Input:
|
||||
|
||||
1
|
||||
/ \
|
||||
2 3
|
||||
\
|
||||
5
|
||||
|
||||
Output: ["1->2->5", "1->3"]
|
||||
|
||||
Explanation: All root-to-leaf paths are: 1->2->5, 1->3
|
||||
|
||||
## 题目大意
|
||||
|
||||
给定一个二叉树,返回所有从根节点到叶子节点的路径。说明: 叶子节点是指没有子节点的节点。
|
||||
|
||||
## 解题思路
|
||||
|
||||
- Google 的面试题,考察递归
|
||||
|
||||
|
||||
|
||||
## 代码
|
||||
|
||||
```go
|
||||
|
||||
package leetcode
|
||||
|
||||
import (
|
||||
"strconv"
|
||||
)
|
||||
|
||||
/**
|
||||
* Definition for a binary tree node.
|
||||
* type TreeNode struct {
|
||||
* Val int
|
||||
* Left *TreeNode
|
||||
* Right *TreeNode
|
||||
* }
|
||||
*/
|
||||
func binaryTreePaths(root *TreeNode) []string {
|
||||
if root == nil {
|
||||
return []string{}
|
||||
}
|
||||
res := []string{}
|
||||
if root.Left == nil && root.Right == nil {
|
||||
return []string{strconv.Itoa(root.Val)}
|
||||
}
|
||||
tmpLeft := binaryTreePaths(root.Left)
|
||||
for i := 0; i < len(tmpLeft); i++ {
|
||||
res = append(res, strconv.Itoa(root.Val)+"->"+tmpLeft[i])
|
||||
}
|
||||
tmpRight := binaryTreePaths(root.Right)
|
||||
for i := 0; i < len(tmpRight); i++ {
|
||||
res = append(res, strconv.Itoa(root.Val)+"->"+tmpRight[i])
|
||||
}
|
||||
return res
|
||||
}
|
||||
|
||||
```
|
Reference in New Issue
Block a user