leetcode103. 二叉树的锯齿形层次遍历
生活随笔
收集整理的這篇文章主要介紹了
leetcode103. 二叉树的锯齿形层次遍历
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
給定一個(gè)二叉樹,返回其節(jié)點(diǎn)值的鋸齒形層次遍歷。(即先從左往右,再?gòu)挠彝筮M(jìn)行下一層遍歷,以此類推,層與層之間交替進(jìn)行)。
例如:
給定二叉樹?[3,9,20,null,null,15,7],
? ? 3
? ?/ \
? 9 ?20
? ? / ?\
? ?15 ? 7
返回鋸齒形層次遍歷如下:
[
? [3],
? [20,9],
? [15,7]
]
思路:達(dá)到層次遍歷的效果后,把奇數(shù)下標(biāo)的list反轉(zhuǎn)一下即可。
或者雙端隊(duì)列,奇數(shù)層放的時(shí)候放開頭,偶數(shù)層放結(jié)尾。
/*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode(int x) { val = x; }* }*/ class Solution {List<List<Integer>> levels = new ArrayList<List<Integer>>();public void helper(TreeNode node, int level) {if (levels.size() == level)levels.add(new ArrayList<Integer>());levels.get(level).add(node.val);if (node.left != null)helper(node.left, level + 1);if (node.right != null)helper(node.right, level + 1);}public List<List<Integer>> zigzagLevelOrder(TreeNode root) {if (root == null) return levels;helper(root, 0);for(int i=1;i<levels.size();i+=2)Collections.reverse(levels.get(i));return levels;} }?
總結(jié)
以上是生活随笔為你收集整理的leetcode103. 二叉树的锯齿形层次遍历的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 建行钻石卡有年费吗?可用积分来兑换
- 下一篇: 广发I购花占用信用卡额度吗?用了必须要还