zoukankan      html  css  js  c++  java
  • flatten 4-direction doubly linked list.

    就是有上下左右四个方向的子node,每个子node也可以有上下左右四个方向的子node,要求把这玩意儿转换成正常的doubly linkedlist,O(1) space,所以不能recursive,因为有stack space。

    public class MultiListToDoubleList {
    	static class MultiListNode {
    		int val;
    		MultiListNode pre;
    		MultiListNode next;
    		MultiListNode up;
    		MultiListNode down;
    	}
    	
    	public static void convert(MultiListNode head) {
    		if (head == null) {
    			return;
    		}
    		
    		MultiListNode tail = head;
    		while (tail.next != null) {
    			tail = tail.next;
    		}
    		
    		MultiListNode cur = head;
    		while (cur != null) {
    			if (cur.up != null) {
    				tail.next = cur.up;
    				cur.up.pre = tail;
    				while (tail.next != null) {
    					tail = tail.next;
    				}
    				cur.up = null;
    			}
    			
    			if (cur.down != null) {
    				tail.next = cur.down;
    				cur.down.pre = tail;
    				while (tail.next != null) {
    					tail = tail.next;
    				}
    				cur.down = null;
    			}
    			cur = cur.next;
    		}
    	}
    	
    }
    

      

    public class MultiListToDoubleList {
            static class MultiListNode {
                    int val;
                    MultiListNode pre;
                    MultiListNode next;
                    MultiListNode up;
                    MultiListNode down;
            }
            . 涓€浜�-涓夊垎-鍦帮紝鐙��鍙戝竷
            public static void convert(MultiListNode head) {. visit 1point3acres.com for more.
                    if (head == null) {
                            return;
                    }
                    
                    MultiListNode tail = head;
                    while (tail.next != null) {
                            tail = tail.next;
                    }
                    
                    MultiListNode cur = head;
                    while (cur != null) {
                            if (cur.up != null) {. Waral 鍗氬�鏈夋洿澶氭枃绔�,
                                    tail.next = cur.up;
                                    cur.up.pre = tail;
                                    while (tail.next != null) {
                                            tail = tail.next;. 涓€浜�-涓夊垎-鍦帮紝鐙��鍙戝竷
                                    }
                                    cur.up = null;
                            }
                            . from: 1point3acres.com/bbs 
                            if (cur.down != null) {
                                    tail.next = cur.down;. 鍥磋�鎴戜滑@1point 3 acres
                                    cur.down.pre = tail;
                                    while (tail.next != null) {. 涓€浜�-涓夊垎-鍦帮紝鐙��鍙戝竷
                                            tail = tail.next;
                                    }
                                    cur.down = null;
                            }
                            cur = cur.next;
                    }
            }-google 1point3acres
            
    }. 鐗涗汉浜戦泦,涓€浜╀笁鍒嗗湴
    

      

  • 相关阅读:
    用IntelliJ IDEA 开发Spring+SpringMVC+Mybatis框架 分步搭建一:建立MAVEN Web项目
    jvm学习笔记二(减少GC开销的建议)
    jvm学习笔记一(垃圾回收算法)
    【转】 StringUtils中 isNotEmpty 和isNotBlank的区别
    单例模式
    工厂模式
    个人项目作业
    第一次作业-热身!
    第四单元总结
    第三单元总结
  • 原文地址:https://www.cnblogs.com/apanda009/p/7927134.html
Copyright © 2011-2022 走看看