還蠻經典的,以最簡單的題目可以鑒別出對方瞭不瞭, 深度優先最簡單,比如以2元樹來說,一般中序遞迴函式就是,裡面就先走訪左,中,再右即可。 foo(Tree node) { If node is Null return; foo(node.left); print node; foo(node.right); } 廣度也差不多,先走訪自己,再走訪子節點(樹葉): foo(List nodes){ List nodeList=new List(); for n in nodes { print n; nodeList.add(n的子節點們); If nodeLlst is not empty { foo(nodeLlst); } } } 以最簡單的表示演算大致如上, 可以自行加上子節點怎麼抓的邏輯,並判斷是否有子節點或是null等判斷即可,走訪print可以自己改成搜尋,if node.value == target then return node;