2017-11-25 153 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