2017-11-25 155 views
2

我有一个深度优先搜索的简单玩具代码,但为什么我在打印后得到一个%?为什么我要在递归DFS后打印特殊字符?

# Definition for a binary tree node 
class TreeNode: 
    def __init__(self, x): 
     self.val = x 
     self.left = None 
     self.right = None 
    def dfs(t): 
    if t==None:  
     print("",end="")  
    else:  
     print(t.val,end="")   
     dfs(t.left)   
     dfs(t.right) 

t=TreeNode(1) 
t.left=TreeNode(2) 
t.right=TreeNode(3) 
t.left.left=TreeNode(4) 
t.left.right=TreeNode(5) 
t.right.left=TreeNode(6) 
t.right.right=TreeNode(7) 
dfs(t) 

输出:1245367%

+2

这是你为什么应该[mcve]的另一个原因 - 假设@ user2357112是正确的(一个安全赌注),那么在最小化你的例子的过程中,你会意识到它实际上并不依赖于大部分代码都是。 – DSM

+0

@DSM谢谢!我是新来的,并试图学习如何问。 – hxd1011

回答

5

这就是你的shell提示符。您的输出不会以行终止符结束,因此您的shell会在您的程序输出的同一行上打印其“下一个命令,请”提示。

+0

谢谢,我正在使用iterm zsh,所以 - >实际上是一个与% – hxd1011