chapter-four/0200~0299/0257.Binary-Tree-Paths
257. 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 的面试题,考察递归
代码
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 }