二叉树的所有路径

原创 2016年05月31日 18:00:39

样例

给出下面这棵二叉树:

   1
 /   \
2     3
 \
  5

所有根到叶子的路径为:

[
  "1->2->5",
  "1->3"
]

/**

 * Definition of TreeNode:
 * public class TreeNode {
 *     public int val;
 *     public TreeNode left, right;
 *     public TreeNode(int val) {
 *         this.val = val;
 *         this.left = this.right = null;
 *     }
 * }
 */
public class Solution {
    /**
     * @param root the root of the binary tree
     * @return all root-to-leaf paths
     * 根左右 遍历
     */
    public List<String> binaryTreePaths(TreeNode root) {
        // Write your code here
        ArrayList<String> paths = new ArrayList<String>();
        String path = "";
        if (root == null){
            return paths;
        }
        searchPaths(root, paths, path);
        return paths;
    }
    public void searchPaths(TreeNode root, ArrayList<String> paths, String path){
        if (root == null){
            return;
        }
        if (root.left == null && root.right == null){
            if (path.equals("")){
                path += root.val;
            }
            else {
                path += "->" + root.val;
            }
            paths.add(path);//到叶子节点 将路径字符串加入list
        }
        //非叶子节点 将节点加入字符串保存
        if (path.equals("")){
            path += root.val;
        }
        else {
            path += "->" + root.val;
        }
        searchPaths(root.left, paths, path);
        searchPaths(root.right, paths, path);
    }
}

相关文章推荐

数据结构 二叉树路径问题

  • 2013年09月08日 21:04
  • 152KB
  • 下载

数据结构实践——二叉树排序树中查找的路径

本文是[数据结构基础系列(8):查找]中的实践项目参考。【项目 - 二叉树排序树中查找的路径】 设计一个算法,输出在二叉排序中查找时查找某个关键字经过的路径。[参考解答] 专为本项目设计的算法体现...

(第十四周项目2)二叉树排序树中查找的路径

 设计一个算法,输出在二叉排序中查找时查找某个关键字经过的路径。 #include #include #define MaxSize 100 typedef int KeyType; ...

【第十四周项目2 - 二叉树排序树中查找的路径】

问题及代码: /* * Copyright (c) 2016, 烟台大学计算机与控制工程学院 * All rights reserved. * 文件名称:Cube007.cpp * 作 ...

【回溯】二叉树求和的所有路径

二叉树求和的所有路径,比如     例如 输入整数22和如下二元树     10     / \    5   12    / \   4   7  则打印出两条路径:10,12和12,...

第十四周项目二 二叉树排序树中查找的路径

/* * Copyright (c) 2015, 烟台大学计算机与控制工程学院 * All rights reserved. * 文件名称: main.cpp * 作者:巩凯强 * 完成日期:2015...

LeetCode | Binary Tree Maximum Path Sum(二叉树的路径最大值)

Given a binary tree, find the maximum path sum. The path may start and end at any node in the tre...

打印二叉树和为某一值的路径

要求:输入一棵二叉树和一个整数,打印出二叉树中节点值的和为输入整数的所有路径。从树的根节点开始往下一直到叶节点所经过的 节点形成一条路径。二叉树的节点定义如下: struct BTNode { ...
  • htq__
  • htq__
  • 2016年03月16日 20:39
  • 2103
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:二叉树的所有路径
举报原因:
原因补充:

(最多只允许输入30个字)