import java.util.ArrayList;
import java.util.List;
public class TreeNodePath {
public static void main(String[] args) {
TreeNode treeNode1 = new TreeNode(1);
TreeNode treeNode2= new TreeNode(2);
TreeNode treeNode3 = new TreeNode(3);
TreeNode treeNode4 = new TreeNode(4);
TreeNode treeNode5 = new TreeNode(5);
TreeNode treeNode6 = new TreeNode(6);
TreeNode treeNode7 = new TreeNode(8);
treeNode1.left = treeNode2;
treeNode1.right = treeNode3;
treeNode2.left = treeNode4;
treeNode2.right = treeNode5;
treeNode4.left = treeNode6;
treeNode4.right = treeNode7;
List<String> list = getPath(treeNode1);
for(String s : list){
System.out.println(s);
}
}
public static List<String> getPath(TreeNode head){
List<String> list = new ArrayList<>();
if(head == null){
return list;
}
if(head.left == null && head.right == null){
list.add("" + head.val);
return list;
}
List<String> listLeft = getPath(head.left);
for(int i=0;i<listLeft.size();i++){
list.add(+head.val+"->" + listLeft.get(i));
}
List<String> listRight = getPath(head.right);
for(int j=0;j<listRight.size();j++){
list.add(+head.val+"->" + listRight.get(j));
}
return list;
}
static class TreeNode{
int val;
TreeNode left;
TreeNode right;
public TreeNode(int val){
this.val = val;
}
}
}
1->2->4->6
1->2->4->8
1->2->5
1->3