本文共 944 字,大约阅读时间需要 3 分钟。
ZigZag 树打印
给定一个二叉树,返回其节点值的锯齿形层次遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */class Solution { public List
> zigzagLevelOrder(TreeNode root) { BfsOperation op = new BfsOperation(root); if(root == null) return op.list; return op.bfs(); } static class BfsOperation{ TreeNode root; List
> list = new LinkedList<>(); BfsOperation(TreeNode ROOT) { this.root = ROOT; } public List
> bfs() { Deque q = new LinkedList<>(); q.push(root); int depth = 0; while(q.isEmpty()==false) { int size = q.size(); LinkedList list = new LinkedList<>(); for(int i=0;i q,int val,int depth) { if( (depth & 1)==0){ q.add(val); }else{ q.addFirst(val); } } }}
转载地址:http://tzyzi.baihongyu.com/