好多天没写算法了,好多天也不更了。。今天开始继续啊,加油!先来一个简单的二叉树练练手哈
题目
给定一个二叉树,返回从根节点到叶节点的所有路径。
例如,给定以下二叉树:
1 / \ 2 3 \ 5
所有根到叶路径是:
["1->2->5", "1->3"]
分析
二叉树先序遍历一下,递归把节点值挨个加入就好了
代码
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
class Solution {
public List<String> binaryTreePaths(TreeNode root) {
List<String> list = new ArrayList<>();
if (root == null) return list;
iterator(root,list,"");
return list;
}
public void iterator(TreeNode root,List<String> list,String string){
string += root.val + " ";
if (root.left == null && root.right == null)
list.add(string.trim().replace(" ","->"));
if (root.left != null)
iterator(root.left,list,string);
if (root.right != null)
iterator(root.right,list,string);
}
}