# 257. Binary Tree Paths

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

For example, given the following binary tree:

Solution1:

class Solution {

public List<String> binaryTreePaths(TreeNode root) {

List<String> ans = new ArrayList<>();

if (root != null)

searchBT(root, "", ans);

return ans;

}

public void searchBT(TreeNode root, String path, List ans) {

if (root.left == null && root.right == null)

if (root.left != null)

searchBT(root.left, path + root.val + "->", ans);

if (root.right != null)

searchBT(root.right, path + root.val + "->", ans);

}

}

Solution2: //BFS

class Solution {

public List<String> binaryTreePaths(TreeNode root) {

List<String> list = new ArrayList<>();

Stack<TreeNode> sNode=new Stack<>();

Stack<String> sStr=new Stack<>();

if(root==null)

return list;

sNode.push(root);

sStr.push("");

while(!sNode.isEmpty()) {

TreeNode curNode = sNode.pop();

String curStr = sStr.pop();

if(curNode.left == null && curNode.right == null)

if(curNode.left != null) {

sNode.push(curNode.left);

sStr.push(curStr + curNode.val + "->");

}

if(curNode.right != null) {

sNode.push(curNode.right);

sStr.push(curStr + curNode.val + "->");

}

}

return list;

}

}

257. Binary Tree Paths

(0)
(0)

0条