Hier ist das Problem der binären Baumpfade: Gegeben eine binäre Struktur, alle Wurzel-zu-Blatt-Pfade zurückgeben.Binäre Baumpfade - was ist mit meinem Code falsch?
Zum Beispiel angesichts der folgenden binären Baum:
1
/ \
2 3
\
5
Alle Wurzel-zu-Blatt Pfade sind:
["1->2->5", "1->3"]
Und hier ist mein Javascript-Code:
/**
* 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 paths = [];
if(!root) return [];
if(root.left == null && root.right == null){
if(paths.length == 0) return [""+root.val];
else return root.val;
}
else{
if(root.left) paths.push(root.val + "->" + binaryTreePaths(root.left))
if(root.right) paths.push(root.val + "->" + binaryTreePaths(root.right))
}
return paths;
};
Testfall:
Eingang:
[1,2,3,5,6]
Ausgang:
["1->2->5,2->6","1->3"]
Erwartet:
["1->2->5","1->2->6","1->3"]
Warum mein Code der ausgegeben nicht den vollständigen Pfad der Rückkehr "1-> 2-> 6"?
Ihr Code erscheint mit '.left' und' .right' den Baum zu schauen, wie Objekte zu erwarten Eigenschaften, aber Sie sagen, dass die Eingabe ein einfaches Array ist. – Pointy