給定乙個二叉樹,原地將它展開為乙個單鏈表。
解答
將二叉樹展開為單鏈表之後,單鏈表中的節點順序即為二叉樹的前序遍歷訪問各節點的順序
遞迴實現
class迭代實現solution
}private
void preorder(treenode node, listtreenodelist)
treenodelist.add(node);
preorder(node.left, treenodelist);
preorder(node.right, treenodelist);}}
classsolution
list
list = new
arraylist();
stack
stack = new
stack();
stack.push(root);
while(!stack.isempty())
if(treenode.left != null
)
}for(int i=1;i) }}
Leetcode刷題 114 二叉樹展開為鍊錶
題解參考 寫樹的遞迴,首先要想清楚使用二叉樹的哪種遍歷方式 本題需要對最下面的子節點進行操作,而且我們操作的只能是父節點,注意,操作父節點,所以,符合要求的只能是後序遍歷。樹的遞迴操作,核心都是,在哪步操作根節點 就是合理選擇前中後序遍歷 給你二叉樹的根結點 root 請你將它展開為乙個單鏈表 展開...
每日一題 二叉樹展開為鍊錶
思路很簡單 先把root的左子樹轉化為鍊錶移到右子樹,再將右子樹轉化為鍊錶移到左子樹後面,整個過程是遞迴進行的。definition for a binary tree node.class treenode def init self,x self.val x self.left none sel...
每天1題演算法題(1) 二叉樹的中序遍歷
給定乙個二叉樹,返回它的中序 遍歷。輸入 1,null,2,3 1 2 3輸出 1,3,2 1.最簡單也是最直接的,直接用遞迴演算法實現 class solution public void dfs treenode root,list list dfs root.left,list list.ad...