javascript - [leetcode] Binary Tree Preorder Traversal!
迷茫
迷茫 2017-04-11 10:59:58
0
2
561

Binary Tree Preorder Traversal!
参考【python实现二叉树】用递归写了下面的代码

[javascript]
var result = [];
var preorderTraversal = function(root) {
    if(root){
        result.push(root.val);
        preorderTraversal(root.left);
        preorderTraversal(root.right);
    }
    return result;
};

[python]
class Solution(object):
    result = []
    def preorderTraversal(self, root):
        if root:
            self.result.append(root.val)
            self.preorderTraversal(root.left)
            self.preorderTraversal(root.right)
            # print "self.result=", self.result
        return self.result
        
[cpp]
class Solution {
public:
    vector<int>res;
    vector<int> preorderTraversal(TreeNode *root) {
        if(root == NULL) return res;
        res.push_back(root->val);
        res = preorderTraversal(root->left);
        res = preorderTraversal(root->right);
        return res;
    }
};

用 python 刷题时,出现错误,但改写成 cpp 后,就通过了...
其实,想问的是:python 与 javascrip 错了?错哪了?

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

Antworte allen(2)
小葫芦

JavaScript 中你把 result 变量定义在外面,每次没有重新赋值

你有没有像 cpp 文件里特判 null

巴扎黑

Python, leetcode检测一个答案是通过多个测试用例进行测试的, 因此不能把result做成类变量,要把它变成实例变量

class Solution(object):
    def __init__(self):
        self.result = []
    def preorderTraversal(self, root):
        if root:
            self.result.append(root.val)
            self.preorderTraversal(root.left)
            self.preorderTraversal(root.right)
        return self.result
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!