標籤:binarytreepaths leetcode java 深度優先
題目:
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"]
題解:
用深度優先遍曆,類似二叉樹的前序變遍曆
代碼:
public class LeetCode257_BinaryTreePaths { static List<String> paths=new ArrayList<>();/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stubTreeNode p1=new TreeNode(1);TreeNode p2=new TreeNode(2);//TreeNode p3=new TreeNode(3);//TreeNode p4=new TreeNode(5);p1.left=p2;//p1.right=p3;//p2.left=p4;binaryTreePaths(p1);} public static List<String> binaryTreePaths(TreeNode root) { if(root==null) return paths; String curPath=""; serachTree(root, curPath); return paths; } public static void serachTree(TreeNode root,String currentPath) { currentPath+=root.val; if(root.left==null&&root.right==null) { paths.add(currentPath); System.out.println(currentPath); return; } currentPath+="->"; if(root.left!=null) serachTree(root.left, currentPath); if(root.right!=null) serachTree(root.right, currentPath);} }
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。
LeetCode257 BinaryTreePaths(列印根節點到葉子節點的左右路徑) Java題解