标签:ring arc blog nbsp public OWIN stack bin following
Given a binary tree, return all root-to-leaf paths.
For example, given the following binary tree:
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)
ans.add(path + root.val);
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)
list.add(curStr + curNode.val);
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;
}
}
标签:ring arc blog nbsp public OWIN stack bin following
原文地址:https://www.cnblogs.com/MarkLeeBYR/p/10537522.html