/**
* Definition for a binary tree node.
* function TreeNode(val) {
* this.val = val;
* this.left = this.right = null;
* }
*/
/**
* @param {TreeNode} root
* @return {string[]}
*/
var binaryTreePaths = function(root) {
var mark = "->";
var ret = [];
if(root===null){
return ret;
}
deepsearch(root);
return ret;
function deepsearch(node){
if(node.left===null&&node.right===null){
ret.push(node.val+"");
return;
}
if(node.left!==null){
node.left.val = node.val + mark + node.left.val;
deepsearch(node.left);
}
if(node.right!==null){
node.right.val = node.val + mark + node.right.val;
deepsearch(node.right);
}
}
};
这道题考查的是深度优先搜索,一般深度优先搜索是采用栈的方法解决,这道题我采用的是递归。
并且,将每个节点的val值变成存储路径的地方,最后的跟节点的val值直接push进ret数组即可。