LeetCode 二叉樹的層次遍歷 BFS DFS

2021-10-03 18:03:28 字數 1301 閱讀 2561

102. 二叉樹的層次遍歷

自己做的,完全按bfs模板搞的:

/**

* definition for a binary tree node.

* public class treenode

* }*/class solution

queuequeue = new linkedlist<>();

queue.offer(new node(root, 0));

int level = 0;

listlist = new arraylist();

while(!queue.isempty())

list.add(n.v.val);

if (n.v.left != null)

if (n.v.right != null)

}result.add(list);

return result;

}class node

}}

別人的方法: dfs,直接把對應的值放到list的對應位置。執行時間變短

/**

* definition for a binary tree node.

* public class treenode

* }*/class solution

private void dfs(treenode root, int level)

if (list.size() <= level)

list.get(level).add(root.val); // 把當前值放到對應位置

dfs(root.left, level + 1); //先序遍歷

dfs(root.right, level + 1);

}}

107. 二叉樹的層次遍歷 ii

/**

* definition for a binary tree node.

* public class treenode

* }*/class solution

queuequeue = new linkedlist<>();

queue.offer(root);

while (!queue.isempty())

if (node.right != null)

}// 往隊頭放資料

result.addfirst(l);

} return result;

}}

LeetCode 初級演算法 樹 二叉樹的層次遍歷

給定乙個二叉樹,返回其按層次遍歷的節點值。即逐層地,從左到右訪問所有節點 例如 給定二叉樹 3,9,20,null,null,15,7 3 9 20 15 7返回其層次遍歷結果 3 9,20 15,7 一開始的解法是,先層次遍歷把所有的樹節點存放進乙個二維list中,然後在做一次巢狀迴圈將每個節點的...

LeetCode 力扣 102 二叉樹的層次遍歷

二叉樹的層次遍歷,輸出乙個 list 的 list。這道題考的就是 bfs,我們可以通過 dfs 實現。只需要在遞迴過程中將當前 level 傳入即可。public list levelorder treenode root private void dfs treenode root,int le...

leetcode 二叉樹 二叉樹的層次遍歷

給定乙個二叉樹,返回其按層次遍歷的節點值。即逐層地,從左到右訪問所有節點 例如 給定二叉樹 3,9,20,null,null,15,7 3 9 20 15 7 返回其層次遍歷結果 3 9,20 15,7 方法一 遞迴 思路 比較訪問節點所在層次level和當前最高層次len levels 判定是否需...