二叉树的所有路径
2017-01-08 23:02
274 查看
package leetcode;
/**
* 题目
给一棵二叉树,找出从根节点到叶子节点的所有路径。
样例
给出下面这棵二叉树:
他的路径为:
[
“1->2->5”
“1->3”
]
*/
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class n7TreeNodePath {
}
/**
* 题目
给一棵二叉树,找出从根节点到叶子节点的所有路径。
样例
给出下面这棵二叉树:
他的路径为:
[
“1->2->5”
“1->3”
]
*/
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class n7TreeNodePath {
public static void main(String[] args) { TreeNode root=createTree(); List resultList=new ArrayList<String>(); if(root!=null){ treePath(root,resultList,root.val+""); } for(Object path:resultList){ System.out.println((String)path); } } private static void treePath(TreeNode root, List resultList, String strpath) { if(root.left==null&&root.right==null){ resultList.add(strpath); return; } if(root.left!=null){ treePath(root.left,resultList,strpath+"->"+root.left.val); } if(root.right!=null){ treePath(root.right,resultList,strpath+"->"+root.right.val); } } //用先序递归建树 public static TreeNode createTree(){ Scanner input=new Scanner(System.in); String str=input.nextLine();// 输入一个数字 TreeNode node=null; if(isNum(str)){//判断是否是数字,则用这个数字为根创建一个结点 node=new TreeNode(Integer.valueOf(str).intValue()); node.left=createTree(); node.right=createTree(); return node; } return node; } //先序遍历 public static void PreTraverse(TreeNode root){ if(root!=null){ System.out.printf("%4d",root.val); PreTraverse(root.left); PreTraverse(root.right); }else{ System.out.printf("%2c",'#'); } } public static boolean isNum(String str){ return str.matches("^[-+]?(([0-9]+)([.]([0-9]+))?([.]([0-9]+))?)$"); }
}
相关文章推荐
- 面试题04 - 二叉树中和为某一值的所有路径 [树]
- 二叉树中从根结点到叶子结点所有路径(非递归实现)
- 5)二叉树[3]求所有结点到根节点的路径
- Company TengX 面试 笔试 : 打印 二叉树 指定值的所有路径
- 输出二叉树中所有从根结点到叶子结点的路径
- 二叉树中查找和为某个数的所有路径
- 二叉树和为某种所有路径
- 257. Binary Tree Paths (求二叉树中所有根到叶子的路径)
- PHP 输入一棵二叉树和一个数字n,要求找出路径和为n的所有路径
- 求解最优二叉树所有叶子结点的带权路径长度之和
- 求二叉树中的最大路径和,也就是求节点和节点之间的路径上所有节点的最大值
- Path Sum II 二叉树路径和,打印所有路径 @LeetCode
- 【31】给定一个二叉树打印出所有从根结点到叶子结点路径和为 k 的路径
- 打印二叉树所有的路径 [No. 9]
- Java实现打印二叉树所有路径的方法
- 二叉树创建、遍历(递归和非递归)、深度及求取二叉树中和为某一值的所有路径
- 二叉树的所有路径
- 找出二叉树中所有累加值为给定值的路径
- 【IT笔试面试题整理】二叉树中和为某一值的路径--所有可能路径
- 【Leetcode】Binary Tree Paths 二叉树根结点到所有叶子结点的路径