[LeetCode]257. Binary Tree Paths

Easy

Given a binary tree, return all root-to-leaf paths.

For example, given the following binary tree:

1
/ \
2 3
\
5
All root-to-leaf paths are:

[“1->2->5”, “1->3”]

5ms:

public List<String> binaryTreePaths(TreeNode root) {
    List<String> result = new ArrayList<String>();
    if(root==null) return result;
    List<Integer> list = new LinkedList<Integer>();
    dfs(result,list,root);
    return result;
}

private void dfs(List<String> result,List<Integer> list,TreeNode node){
    list.add(node.val);
    if(node.left==null&&node.right==null){
        StringBuffer sb = new StringBuffer();
        for(Integer i:list){
            sb.append(i);
            sb.append("->");
        }
        result.add(sb.substring(0,sb.length()-2));
    }
    if(node.left!=null)
        dfs(result,list,node.left);
    if(node.right!=null)
        dfs(result,list,node.right);
    list.remove(list.size()-1);
}

2ms:

public List<String> binaryTreePaths(TreeNode root) {
        if(root == null) return new ArrayList<String>();
        List<String> result = new ArrayList<String>();
        dfs(root, "", result);
        return result;
}
private void dfs(TreeNode root, String s, List<String> result){
        if(root.left == null && root.right==null)
            result.add(s+String.valueOf(root.val));
        if(root.left != null)
            dfs(root.left, s+String.valueOf(root.val)+"->", result);
        if(root.right !=null)
            dfs(root.right, s+String.valueOf(root.val)+"->", result);
}

参考:
112. Path Sum&113. Path Sum II

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值